Security News
How Threat Actors are Abusing GitHub’s File Upload Feature to Host Malware
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
clones
Advanced tools
Readme
should deep clone everything even global objects, functions, circularities, ...
Companion for safer-eval.
Runs on node and in modern browsers:
Versions | |
---|---|
node | |
Chrome | 55, 56, 71 |
Firefox | 45, 51, 64 |
Edge | 14, 16 |
IE | |
Safari | 10 |
iOS Safari | 10 |
npm i -S clones
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:
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
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]
FAQs
should deep clone everything even global objects, functions, circularities, ...
The npm package clones receives a total of 10,348 weekly downloads. As such, clones popularity was classified as popular.
We found that clones demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub is susceptible to a CDN flaw that allows attackers to host malware on any public repository.
Security News
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
Research
Security News
The Socket Research team found this npm package includes code for collecting sensitive developer information, including your operating system username, Git username, and Git email.