A simple NPM package to do simple and fast deep cloning with
JSON.parse+JSON.stringify.
# Install via NPM
$ npm install --save deep.clone/** Import project dependencies */
const { deepClone } = require('deep.clone');
/** Setting up */
const simpleObject = {
a: {
b: { c: [1, 2,3] },
e: [ { f: null } ],
},
d: 'deep',
};
const complexObject = {
a: () => {},
b: /test/gi,
c: [1, 2],
d: new Date(),
e: { f: 111 },
};
(async () => {
const clonedSimpleObject = await deepClone(simpleObject);
const clonedComplexObject = await deepClone(compleObject, {
absolute: true,
});
})();/** Import project dependencies */
import deepClone from 'deep.clone';
/** Setting up */
const simpleObject = {
a: {
b: { c: [1, 2,3] },
e: [ { f: null } ],
},
d: 'deep',
};
const complexObject = {
a: () => {},
b: /test/gi,
c: [1, 2],
d: new Date(),
e: { f: 111 },
};
(async () => {
const clonedSimpleObject = await deepClone(simpleObject);
const clonedComplexObject = await deepClone(compleObject, {
absolute: true,
});
})();- target <
any> Target to be cloned. - options <Object> Set
absolute: truefor deep cloning complex objects that are not possible withJSON.parse+JSON.stringify.- absolute <boolean> True if deep cloning complex objects.
- returns: <Promise<
any>> Promise which resolves with the deeply cloned target.
This method deeply clones a given target with JSON.parse + JSON.stringify asynchronously by default. Set absolute: true for deep cloning complex objects that contain Date, RegExp, Function, etc.
- target <
any> Target to be cloned. - options <Object> Set
absolute: truefor deep cloning complex objects that are not possible withJSON.parse+JSON.stringify.- absolute <boolean> True if deep cloning complex objects.
- returns: <Promise<
any>> Promise which resolves with the deeply cloned target.
This methods works the same as deepClone(target[, options]) except that this is the synchronous version.
MIT License © Rong Sen Ng

