Files
line_push/node_modules/serve-placeholder/node_modules/defu/lib/index.js
T
darenhsu befd344ab0 add file
2022-07-17 13:16:16 +08:00

36 lines
655 B
JavaScript

function isObject (val) {
return val !== null && typeof val === 'object' && !Array.isArray(val)
}
function defu (_obj, _defaults) {
if (!isObject(_obj)) {
return defu({}, _defaults)
}
if (!isObject(_defaults)) {
return defu(_obj, {})
}
var obj = Object.assign({}, _defaults)
Object.keys(_obj).forEach(function (key) {
if (key === '__proto__' || key === 'constructor') {
return
}
var val = _obj[key]
if (val === null) {
return
}
if (isObject(val) && isObject(obj[key])) {
obj[key] = defu(val, obj[key])
} else {
obj[key] = val
}
})
return obj
}
module.exports = defu