import { isPlainObject } from "./is-plain-object"; | |
function mergeDeep(defaults, options) { | |
const result = Object.assign({}, defaults); | |
Object.keys(options).forEach((key) => { | |
if (isPlainObject(options[key])) { | |
if (!(key in defaults)) | |
Object.assign(result, { [key]: options[key] }); | |
else | |
result[key] = mergeDeep(defaults[key], options[key]); | |
} else { | |
Object.assign(result, { [key]: options[key] }); | |
} | |
}); | |
return result; | |
} | |
export { | |
mergeDeep | |
}; |