Package Exports
- deepcopy
- deepcopy/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (deepcopy) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
deepcopy.js
deep copy data
Installation
npm
$ npm install deepcopy
Usage
node.js
JavaScript
const deepcopy = require('deepcopy');
TypeScript
import * as deepcopy from 'deepcopy';
browser
<script src="deepcopy.min.js"></script>
Example
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 } ] }
Functions
deepcopy(value[, options])
value
*
- target value
options
Object|Function
Object
- pass optionsFunction
- use as customize function
return
*
- copied value
Supported types and copy operation
type | operation | |
---|---|---|
ArrayBuffer | deep copy | |
Boolean | deep copy | |
Buffer | deep copy | node.js only |
DataView | deep copy | |
Date | deep copy | |
Number | deep copy | |
RegExp | deep copy | |
String | deep copy | |
Float32Array | deep copy | |
Float64Array | deep copy | |
Int16Array | deep copy | |
Int32Array | deep copy | |
Int8Array | deep copy | |
Uint16Array | deep copy | |
Uint32Array | deep copy | |
Uint8Array | deep copy | |
Uint8ClampedArray | deep copy | |
boolean | deep copy | |
null | deep copy | |
number | deep copy | |
string | deep copy | |
symbol | deep copy | |
undefined | deep copy | |
Arguments | deep copy | recursively, copy as Array |
Array | deep copy | recursively |
Map | deep copy | recursively |
Object | deep copy | recursively |
Set | deep copy | recursively |
Array Iterator | shallow copy | |
Map Iterator | shallow copy | |
Promise | shallow copy | |
Set Iterator | shallow copy | |
String Iterator | shallow copy | |
function | shallow copy | |
global | shallow copy | window, global, self, etc. |
WeakMap | shallow copy | |
WeakSet | shallow copy |
Contributors
License
The MIT license.