"Extedify" is a lightweight wrapper over lodash's _.merge
(like a deep _.extend
) with customizable handling of arrays, booleans, numbers and strings.
(By default, extedify will behave exactly like lodash's _.merge
)
npm install extendify
var extendify = require('extendify');
myExtend = extendify({
// options
});
inPlace
– Override the 'source' with the result?- true (default)
- false
isDeep
– Use deep extend?- true (default)
- false
arrays
– How to handle arrays?- replace (recommended)
- concat
- merge (default)
- or
- and
booleans
– How to handle booleans?- replace (default)
- concat
- or
- and
numbers
– How to handle numbers?- replace (default)
- concat
- or
- and
strings
– How to handle strings?- replace (default)
- concat
- or
- and
Let's get an _.extend function that
- returns a copy/clone,
- replaces arrays,
- supports nested objects (also known as deep extends).
_.extend = extendify({
inPlace: false,
isDeep: true,
arrays : 'replace'
});
object1 = {
a:{
list: [1, 2]
},
b: 4
};
object2 = {
a:{
list: [3]
}
};
var result = myExtend(object1, object2);
/*
{
a: {
list: [3]
},
b: 4
}
*/
More examples are available in the 'examples.js' file.
Your feedback is welcome, email me at reshef.shai@gmail.com.