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
}
|