test-openapi
Version:
Automated client requests
28 lines (22 loc) • 723 B
JavaScript
const deepMerge = require('deepmerge')
// We need a deep merge utility that:
// - shallow merges arrays, i.e. `{ a: [1] }` + `{ a: [2] }` = `{ a: [2] }`
// - do not skip `undefined`, i.e. `{ a: 1 }` + `{ a: undefined }` =
// `{ a: undefined }`
// - allow for customization, i.e. templates not being deep merged
const merge = function(...objects) {
return deepMerge.all(objects, { arrayMerge })
}
// Allow customizing merge by adding a `func`
const customMerge = function(isMergeableObject, ...objects) {
return deepMerge.all(objects, { arrayMerge, isMergeableObject })
}
// Shallow merge array
const arrayMerge = function(src, dest) {
return dest
}
module.exports = {
merge,
customMerge,
}