A utility to merge deep objects.
Use it when you need to merge nested objects.
The following code shows how to merge objects without losing values that are not defined in objects to merge.
import deepExtend from "@jalik/deep-extend";
const defaultColors = {
cold: {
blue: '#0000FF',
green: '#00FF00',
},
hot: {
red: '#FF0000',
yellow: '#FFFF00',
},
};
const customColors = {
cold: {
blue: '#48C2ED',
},
hot: {
yellow: '#E6CB5F',
},
};
// Merge all colors into a new object.
// The final colors will have custom blue and yellow colors,
// but the other colors will be the default ones.
const result = deepExtend({}, defaultColors, customColors);
The result:
{
"cold": {
"blue": "#48C2ED",
"green": "#00FF00"
},
"hot": {
"red": "#FF0000",
"yellow": "#E6CB5F"
}
}
See below how it is easy to merge arrays recursively.
import deepExtend from "@jalik/deep-extend";
const a = [1, [2, [3]]];
const b = [undefined, [4, [undefined, 5], 6], 7];
const result = deepExtend([], a, b);
The result:
[
1,
[
4,
[3, 5],
6
],
7
]
History of releases is in the changelog.
The code is released under the MIT License.