Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 3x | import { has } from '../../../utils' import isSchema from './isSchema' let isObject = obj => 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 } |