UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

23 lines 868 B
import { has } from "../../../utils/index.js"; import isSchema from "./isSchema.js"; var isObject = function isObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; }; export default function prependDeep(target, source) { for (var key in source) if (has(source, key)) { var sourceVal = source[key], targetVal = target[key]; if (targetVal === undefined) { target[key] = sourceVal; } else if (targetVal === sourceVal) { continue; } else if (isSchema(targetVal)) { if (isSchema(sourceVal)) target[key] = sourceVal.concat(targetVal); } else if (isObject(targetVal)) { if (isObject(sourceVal)) target[key] = prependDeep(targetVal, sourceVal); } else if (Array.isArray(targetVal)) { if (Array.isArray(sourceVal)) target[key] = sourceVal.concat(targetVal); } } return target; }