payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
29 lines (28 loc) • 2.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "deepCopyObject", {
enumerable: true,
get: function() {
return deepCopyObject;
}
});
const deepCopyObject = (inObject)=>{
if (inObject instanceof Date) return inObject;
if (inObject instanceof Set) return new Set(inObject);
if (inObject instanceof Map) return new Map(inObject);
if (typeof inObject !== 'object' || inObject === null) {
return inObject // Return the value if inObject is not an object
;
}
// Create an array or object to hold the values
const outObject = Array.isArray(inObject) ? [] : {};
Object.keys(inObject).forEach((key)=>{
const value = inObject[key];
// Recursively (deep) copy for nested objects, including arrays
outObject[key] = typeof value === 'object' && value !== null ? deepCopyObject(value) : value;
});
return outObject;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZGVlcENvcHlPYmplY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGRlZXBDb3B5T2JqZWN0ID0gKGluT2JqZWN0KSA9PiB7XG4gIGlmIChpbk9iamVjdCBpbnN0YW5jZW9mIERhdGUpIHJldHVybiBpbk9iamVjdFxuXG4gIGlmIChpbk9iamVjdCBpbnN0YW5jZW9mIFNldCkgcmV0dXJuIG5ldyBTZXQoaW5PYmplY3QpXG5cbiAgaWYgKGluT2JqZWN0IGluc3RhbmNlb2YgTWFwKSByZXR1cm4gbmV3IE1hcChpbk9iamVjdClcblxuICBpZiAodHlwZW9mIGluT2JqZWN0ICE9PSAnb2JqZWN0JyB8fCBpbk9iamVjdCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBpbk9iamVjdCAvLyBSZXR1cm4gdGhlIHZhbHVlIGlmIGluT2JqZWN0IGlzIG5vdCBhbiBvYmplY3RcbiAgfVxuXG4gIC8vIENyZWF0ZSBhbiBhcnJheSBvciBvYmplY3QgdG8gaG9sZCB0aGUgdmFsdWVzXG4gIGNvbnN0IG91dE9iamVjdCA9IEFycmF5LmlzQXJyYXkoaW5PYmplY3QpID8gW10gOiB7fVxuXG4gIE9iamVjdC5rZXlzKGluT2JqZWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGluT2JqZWN0W2tleV1cblxuICAgIC8vIFJlY3Vyc2l2ZWx5IChkZWVwKSBjb3B5IGZvciBuZXN0ZWQgb2JqZWN0cywgaW5jbHVkaW5nIGFycmF5c1xuICAgIG91dE9iamVjdFtrZXldID0gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCA/IGRlZXBDb3B5T2JqZWN0KHZhbHVlKSA6IHZhbHVlXG4gIH0pXG5cbiAgcmV0dXJuIG91dE9iamVjdFxufVxuIl0sIm5hbWVzIjpbImRlZXBDb3B5T2JqZWN0IiwiaW5PYmplY3QiLCJEYXRlIiwiU2V0IiwiTWFwIiwib3V0T2JqZWN0IiwiQXJyYXkiLCJpc0FycmF5IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsaUJBQWlCLENBQUNDO0lBQzdCLElBQUlBLG9CQUFvQkMsTUFBTSxPQUFPRDtJQUVyQyxJQUFJQSxvQkFBb0JFLEtBQUssT0FBTyxJQUFJQSxJQUFJRjtJQUU1QyxJQUFJQSxvQkFBb0JHLEtBQUssT0FBTyxJQUFJQSxJQUFJSDtJQUU1QyxJQUFJLE9BQU9BLGFBQWEsWUFBWUEsYUFBYSxNQUFNO1FBQ3JELE9BQU9BLFNBQVMsZ0RBQWdEOztJQUNsRTtJQUVBLCtDQUErQztJQUMvQyxNQUFNSSxZQUFZQyxNQUFNQyxPQUFPLENBQUNOLFlBQVksRUFBRSxHQUFHLENBQUM7SUFFbERPLE9BQU9DLElBQUksQ0FBQ1IsVUFBVVMsT0FBTyxDQUFDLENBQUNDO1FBQzdCLE1BQU1DLFFBQVFYLFFBQVEsQ0FBQ1UsSUFBSTtRQUUzQiwrREFBK0Q7UUFDL0ROLFNBQVMsQ0FBQ00sSUFBSSxHQUFHLE9BQU9DLFVBQVUsWUFBWUEsVUFBVSxPQUFPWixlQUFlWSxTQUFTQTtJQUN6RjtJQUVBLE9BQU9QO0FBQ1QifQ==