2.1.0 • Published 5 years ago
deepcopy v2.1.0
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.
2.1.0
5 years ago
2.0.0
6 years ago
1.0.1
6 years ago
1.0.0
7 years ago
0.6.3
9 years ago
0.6.2
9 years ago
0.6.1
10 years ago
0.6.0
10 years ago
0.5.0
10 years ago
0.4.0
11 years ago
0.3.3
12 years ago
0.3.2
12 years ago
0.3.1
12 years ago
0.3.0
12 years ago
0.2.0
12 years ago
0.1.2
12 years ago
0.1.1
12 years ago
0.1.0
13 years ago