23 lines
478 B
JavaScript
23 lines
478 B
JavaScript
import { isDef, isObject } from "./basic.mjs";
|
|
const { hasOwnProperty } = Object.prototype;
|
|
function assignKey(to, from, key) {
|
|
const val = from[key];
|
|
if (!isDef(val)) {
|
|
return;
|
|
}
|
|
if (!hasOwnProperty.call(to, key) || !isObject(val)) {
|
|
to[key] = val;
|
|
} else {
|
|
to[key] = deepAssign(Object(to[key]), val);
|
|
}
|
|
}
|
|
function deepAssign(to, from) {
|
|
Object.keys(from).forEach((key) => {
|
|
assignKey(to, from, key);
|
|
});
|
|
return to;
|
|
}
|
|
export {
|
|
deepAssign
|
|
};
|