123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import arrayMap from './_arrayMap.js';
- import baseClone from './_baseClone.js';
- import baseUnset from './_baseUnset.js';
- import castPath from './_castPath.js';
- import copyObject from './_copyObject.js';
- import customOmitClone from './_customOmitClone.js';
- import flatRest from './_flatRest.js';
- import getAllKeysIn from './_getAllKeysIn.js';
- var CLONE_DEEP_FLAG = 1,
- CLONE_FLAT_FLAG = 2,
- CLONE_SYMBOLS_FLAG = 4;
- var omit = flatRest(function(object, paths) {
- var result = {};
- if (object == null) {
- return result;
- }
- var isDeep = false;
- paths = arrayMap(paths, function(path) {
- path = castPath(path, object);
- isDeep || (isDeep = path.length > 1);
- return path;
- });
- copyObject(object, getAllKeysIn(object), result);
- if (isDeep) {
- result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
- }
- var length = paths.length;
- while (length--) {
- baseUnset(result, paths[length]);
- }
- return result;
- });
- export default omit;
|