Extendr
Utilities for cloning, extending, and de-referencing objects in shallow, deep, and safe ways
Install
Backend
- Install Node.js
npm install --save extendr
Frontend
- See Browserify
Usage
Example
(function(){
var a = {a:1}, b = {b:2}
var c = require('extendr').clone(a,b)
console.log(a)
console.log(b)
console.log(c)
})()
(function(){
var a = {a:1}, b = {b:2}
var c = require('extendr').extend(a,b)
console.log(a)
console.log(b)
console.log(c)
})()
Methods
clone(args...)
- shallow extend the arguments into a new object, same as extend({},args...)
deepClone(args...)
- deep extend the arguments into a new object, same as deepExtend({},args...)
dereference(obj)
- return a copy of the object with all references destroyed, same as serializing then deserializing the objectextend(args...)
- alias for shallowExtendPlainObjects
deepExtend(args...)
- alias for deepExtendPlainObjects
shallowExtendPlainObjects(target, args...)
- shallow extend the arguments into the targetdeepExtendPlainObjects(target, args...)
- deep extend the arguments into the targetsafeShallowExtendPlainObjects(target, objs...)
- shallow extend defined values from the arguments into the targetsafeDeepExtendPlainObjects(target, args...)
- deep extend defined values from the arguments into the target
Notes
- Use the clone methods when you don't want to modify your first object
- Use the extend methods when you want to modify the first argument
- Use the dereference method when you want to make sure that nothing has any references to the old object
- Use the safe methods when you don't want
null
and undefined
values to overwrite a defined values
History
You can discover the history inside the History.md file
License
Licensed under the incredibly permissive MIT License
Copyright © 2013+ Bevry Pty Ltd
Copyright © 2011-2012 Benjamin Arthur Lupton