Sha256: 4dd55692476ceb33f8a3376510653f4637bc5d5abfd164387d4f7df1192fe513
Contents?: true
Size: 622 Bytes
Versions: 22
Compression:
Stored size: 622 Bytes
Contents
const { isObject, isArray, isEqual, isEmpty } = require('./helpers') const deepMerge = (target, source) => { if (isEmpty(target)) return source if (isEmpty(source)) return target if (isEqual(target, source)) return source if (isArray(target) && isArray(source)) return [...new Set([...target, ...source])] if (!(isObject(target) && isObject(source))) return source return [...Object.keys(target), ...Object.keys(source)].reduce( (result, key) => (Object.assign( {}, result, { [key]: deepMerge(target[key], source[key]) } )), {} ) } module.exports = deepMerge
Version data entries
22 entries across 22 versions & 3 rubygems