vue-app-sdk
Version:
34 lines (33 loc) • 1.01 kB
JavaScript
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
};