Where other deep merge utilities might take a bit to groc for the simple function you desire,
you can view Deep Confluence's few lines of code and feel at ease saying "yes" OR "no"—but, say "yes".
yarn deep-confluence -D
import deepConfluence from 'deep-confluence'
const lonelyObj1 = {
broken: true,
alone: true,
complex: {
cats: true,
dogs: false,
},
}
const lonelyObj2 = {
broken: false,
alone: false,
complex: {
noPets: true,
likesCats: true,
},
}
Invoke Deep Confluence and merge two lonely objects deeply into 1. 🖤
const youreNotAlone = deepConfluence(lonelyObj1, lonelyObj2)
Which outputs
{
'alone': false,
'broken': false,
'complex': {
'cats': true,
'dogs': false,
'likesCats': true,
'noPets': true
}
}
Here's a CodePen.
Take it Deep Confluence for a test drive.
Feel free to use the example to point out issues or request features.
Deep Confluence's goal is simplicity!
- If you have lodash, and don't mind a little size, use _.merge!
- If you want a utility smaller than
_.merge
but more supportive than deep-confluence use deepMerge.
Deep confluence is a "try it first, don't make you think about it" utility.
Deep Confluence does simple Array diffing using filter to get rid of duplicate items. However, if there is an array of Objects, the arrays are merged but duplicate objects are not removed. That can be done by you with custom filtering at your leisure.