flow like the river
This commit is contained in:
commit
013fe673f3
42435 changed files with 5764238 additions and 0 deletions
89
VISUALIZACION/node_modules/clones/README.md
generated
vendored
Executable file
89
VISUALIZACION/node_modules/clones/README.md
generated
vendored
Executable file
|
|
@ -0,0 +1,89 @@
|
|||
# clones
|
||||
|
||||
[](https://www.npmjs.com/package/clones/)
|
||||
|
||||
> should deep clone everything even global objects, functions, circularities, ...
|
||||
|
||||
Companion for [safer-eval](https://github.com/commenthol/safer-eval).
|
||||
|
||||
Runs on node and in modern browsers:
|
||||
|
||||
| | Versions |
|
||||
| --- | --- |
|
||||
| **node** | ~~0.12~~, 4, 6, 8, 10, 11 |
|
||||
| **Chrome** | 55, 56, 71 |
|
||||
| **Firefox** | 45, 51, 64 |
|
||||
| **Edge** | 14, 16 |
|
||||
| **IE** | ~~11~~ |
|
||||
| **Safari** | 10 |
|
||||
| **iOS Safari** | 10 |
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
npm i -S clones
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
const clones = require('clones')
|
||||
const dest = clones(source, [bind])
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
|
||||
**Parameters**
|
||||
|
||||
**source**: `Object`, clone source
|
||||
|
||||
**bind**: `Object`, bind functions to this context
|
||||
|
||||
**Returns**: `Any`, deep clone of `source`
|
||||
|
||||
**Example**:
|
||||
```js
|
||||
const clones = require('clones')
|
||||
|
||||
var source = {
|
||||
obj: {a: {b: 1}},
|
||||
arr: [true, 1, {c: 'dee'}],
|
||||
fn: function () { return this.number + 12 }
|
||||
}
|
||||
// adding circularity
|
||||
source.obj.a.e = source.obj.a
|
||||
|
||||
// do the cloning (with binding a context)
|
||||
var dest = clones(source, {number: 30})
|
||||
// => { obj: { a: { b: 1, e: [Circular] }, d: 2017-02-17T21:57:44.576Z },
|
||||
// arr: [ true, 1, { c: 'dee' } ],
|
||||
// fn: [Function: fn] }
|
||||
|
||||
// checks
|
||||
assert.ok(dest !== source) // has different reference
|
||||
assert.ok(dest.obj !== source.obj) // has different reference
|
||||
assert.ok(dest.obj.a !== source.obj.a) // has different reference
|
||||
assert.ok(dest.obj.a.e !== source.obj.a.e) // different references for circularities
|
||||
assert.equal(dest.obj.d.toISOString(),
|
||||
source.obj.d.toISOString()) // has same content
|
||||
assert.ok(dest.fn !== source.fn) // has different function reference
|
||||
source.fn = source.fn.bind({number: 29}) // bind `this` for `source`
|
||||
assert.equal(dest.fn(), source.fn() + 1) // returning the same result
|
||||
```
|
||||
|
||||
### Clone prototypes or classes
|
||||
|
||||
```js
|
||||
const clones = require('clones')
|
||||
// clone built in `Array`
|
||||
const C = clones.classes(Array)
|
||||
|
||||
let c = new C(1,2,3)
|
||||
// => [1, 2, 3]
|
||||
c.reverse()
|
||||
// => [3, 2, 1]
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
[MIT](./LICENSE)
|
||||
Loading…
Add table
Add a link
Reference in a new issue