1234567891011121314151617181920212223242526272829303132333435 |
- const {
- keyInObj,
- allKeys,
- optimizeCb,
- isFunction,
- flatten
- } = require('@jonkemp/package-utils');
-
- module.exports = (obj, ...keys) => {
- const result = {};
- let [iteratee] = keys;
-
- if (!obj) {
- return result;
- }
-
- if (isFunction(iteratee)) {
- if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);
- keys = allKeys(obj);
- } else {
- iteratee = keyInObj;
- keys = flatten(keys);
- obj = Object(obj);
- }
-
- keys.forEach(key => {
- const value = obj[key];
-
- if (iteratee(value, key, obj)) {
- result[key] = value;
- }
- });
-
- return result;
- };
|