function isPlainObject(value) {
|
if (value == null || typeof value !== 'object') return false
|
return Object.getPrototypeOf(value) === Object.prototype
|
}
|
|
function copy(obj, key, value) {
|
if (isPlainObject(value)) {
|
obj[key] || (obj[key] = {})
|
deepExtend(obj[key], value)
|
} else {
|
obj[key] = value
|
}
|
}
|
|
export function deepExtend(target, source) {
|
if (isPlainObject(source)) {
|
const keys = Object.keys(source)
|
|
for (let i = 0, len = keys.length; i < len; i++) {
|
copy(target, keys[i], source[keys[i]])
|
}
|
}
|
|
return target
|
}
|