UNPKG

vue-app-sdk

Version:
34 lines (33 loc) 1.01 kB
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 { omit as default };