npm install defaulty --save
const defaulty = require('defaulty');
const defaultObj = {a: 1, b: 2, c: 3, d: {a: 5, b: 2}};
let targetObj = {a: 4, b: 5, d: {a: 1}};
defaulty(targetObj, defaultObj);
console.log(targetObj); //=> {a: 4, b: 5, c: 3, d: {a: 1, b: 2}};
const defaultObj = {a: 1, b: 2, c: 3, d: {a: 5, b: 2}, x: 1, y: 2};
let targetObj = {a: 4, b: 5, d: {a: 1}};
defaulty(targetObj, defaultObj, ['x', 'y']);
console.log(targetObj); //=> {a: 4, b: 5, c: 3, d: {a: 1, b: 2}};
const defaultObj = {a: 1, b: 2, c: 3, d: {a: 5, b: 2}};
const targetObj = {a: 4, b: 5, d: {a: 1}};
const newTargetObject = defaulty.copy(targetObj, defaultObj);
console.log(newTargetObject); //=> {a: 4, b: 5, c: 3, d: {a: 1, b: 2}};
console.log(targetObj); //=> {a: 4, b: 5, d: {a: 1}};
You can view the changelog here
Defaulty is open-sourced software licensed under the MIT license