1.2.0 • Published 9 years ago
facile-clone v1.2.0
facile-clone 
Creates a shallow clone of an object, focusing on primitives and omitting or clipping large values.
const facileClone = require('facile-clone')
const o = {
num: 1
, bool: true
, string: '0123456789'
, buf: Buffer.from('0123456789')
, null: null
, undefined: undefined
, object: { foo: 'bar' }
}
console.log(facileClone(o))
/* => { num: 1,
bool: true,
string: { type: 'string', len: 10, included: 0, val: '<deleted>' },
buf: { type: 'Buffer', len: 10, included: 0, val: '<deleted>' },
null: null,
undefined: undefined,
object: { type: 'object', val: '<deleted>' } } */
const bufObject = {
buf: Buffer.from('0123456789')
}
console.log(facileClone(bufObject, { bufferLength: 5 }))
// => { buf: { type: 'Buffer', len: 10, included: 5, val: <Buffer 30 31 32 33 34> } }
const stringObject = {
string: '0123456789'
}
console.log(facileClone(stringObject, { stringLength: 5 }))
// => { string: { type: 'string', len: 10, included: 5, val: '01234' } }Installation
npm install facile-cloneAPI
facileClone
Creates a shallow clone of the object, focusing on primitives and omitting or clipping large values.
For objects it also attempts to detect their prototype and provides it via the proto
property.
Parameters
xObject the object to clone$0Object options to configure how large values are omitted/clipped$0.bufferLengthNumber? if greater than0parts of buffers are included in the clone, default:0(optional, default0)$0.stringLengthNumber? if greater than0parts of strings are included in the clone, default:0(optional, default0)$0.keepFunctionsBoolean? iftruefunctions are kept attached to the object, NOTE that this will be a reference to the actual function of the original, i.e. not a clone (optional, defaultfalse)
License
MIT