48 lines
1.1 KiB
Markdown
48 lines
1.1 KiB
Markdown
# nanoclone
|
|
[![license](https://img.shields.io/github/license/kelin2025/nanoclone.svg)](https://github.com/kelin2025/nanoclone/blob/master/LICENSE)
|
|
[![npm](https://img.shields.io/npm/v/nanoclone.svg)](https://npmjs.com/package/nanoclone)
|
|
Only **300B** to deep clone JavaScript objects
|
|
|
|
## Is it small enough?
|
|
See the size of the most popular **[clone](https://www.npmjs.com/package/clone)** npm package with **250M+** downloads
|
|
![image](https://user-images.githubusercontent.com/4208480/34631395-30df289c-f281-11e7-8442-01502af2097a.png)
|
|
And nanoclone size:
|
|
![image](https://user-images.githubusercontent.com/4208480/35292759-9c839f06-0082-11e8-9196-d710d530a74b.png)
|
|
|
|
## Supported
|
|
- [x] Primitives
|
|
- [x] Arrays
|
|
- [x] Plain objects
|
|
- [x] DOM Nodes
|
|
- [x] Date instances
|
|
- [x] RegExp instances
|
|
- [x] Maps
|
|
- [x] Sets
|
|
- [x] Circular structures
|
|
|
|
## Installation
|
|
```
|
|
yarn add nanoclone
|
|
npm install nanoclone
|
|
```
|
|
|
|
## Usage
|
|
```javascript
|
|
import clone from 'nanoclone'
|
|
|
|
let a = {
|
|
num: 2,
|
|
arr: [1, 2, 3],
|
|
nested: {
|
|
obj: {
|
|
a: 0
|
|
}
|
|
}
|
|
}
|
|
|
|
let b = clone(a)
|
|
```
|
|
|
|
## License
|
|
MIT
|