| 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 | |
| }; | |