You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
560 B
21 lines
560 B
const typeOf = require("./type-of")
|
|
|
|
const mixinComponent = function(origin = {}, next = {}) {
|
|
if (typeOf(origin) !== "object") origin = {}
|
|
if (typeOf(next) !== "object") next = {}
|
|
|
|
for (let key in next) {
|
|
if (typeOf(next[key]) === "object") {
|
|
if (typeOf(origin[key]) === "object") {
|
|
origin[key] = mixinComponent(origin[key], next[key])
|
|
} else {
|
|
origin[key] = next[key]
|
|
}
|
|
} else {
|
|
if (typeOf(origin[key]) == "undefined") origin[key] = next[key]
|
|
}
|
|
}
|
|
return origin
|
|
}
|
|
|
|
module.exports = mixinComponent
|