deep copy data
Caution
This package is no longer maintained. For most deep cloning needs, consider using the native structuredClone() function, which is now available in modern JavaScript environments.
$ npm install deepcopyconst deepcopy = require('deepcopy');import * as deepcopy from 'deepcopy';<script src="deepcopy.min.js"></script>basic usage:
const src = {
desserts: [
{ name: 'cake' },
{ name: 'ice cream' },
{ name: 'pudding' }
]
};
const dist = deepcopy(src);
src.desserts = null;
console.log(src); // { desserts: null }
console.log(dist); // { desserts: [ { name: 'cake' }, { name: 'ice cream' }, { name: 'pudding' } ] }customize deepcopy:
function MyClass(id) {
this._id = id;
}
const src = {
myClasses: [
new MyClass(1),
new MyClass(2),
new MyClass(3)
]
};
const dest = deepcopy(base, {
customizer(value) {
if (target.constructor === MyClass) {
return new MyClass(target._id);
}
}
});
src.myClasses = null;
console.log(src); // { myClasses: null }
console.log(dest); // { myClasses: [ MyClass { _id: 1 }, MyClass { _id: 2 }, MyClass { _id: 3 } ] }value*- target value
optionsObject|FunctionObject- pass optionsFunction- use as customize function
return*- copied value
The MIT license.
