@webundsoehne/deep-merge
Advanced tools
Comparing version 3.0.1 to 4.0.0
@@ -1,2 +0,5 @@ | ||
export { deepMerge, deepMergeWithArrayOverwrite, deepMergeWithUniqueMergeArray, uniqueArrayFilter } from './merge.js'; | ||
export { merge } from './merge.js'; | ||
export { ArrayMergeBehavior } from './constants.js'; | ||
export { ArrayMergeFn, DeepMergeOptions } from './interface.js'; | ||
export { arrayMergeOverwrite, arrayMergeUnique, uniqueArrayFilter } from './utils.js'; | ||
import '@webundsoehne/ts-utility-types'; |
@@ -18,1 +18,4 @@ var __defProp = Object.defineProperty; | ||
__reExport(src_exports, require("./merge"), module.exports); | ||
__reExport(src_exports, require("./constants"), module.exports); | ||
__reExport(src_exports, require("./interface"), module.exports); | ||
__reExport(src_exports, require("./utils"), module.exports); |
@@ -0,2 +1,4 @@ | ||
import { DeepMergeOptions } from './interface.js'; | ||
import { DeepPartial } from '@webundsoehne/ts-utility-types'; | ||
import './constants.js'; | ||
@@ -6,22 +8,6 @@ /** | ||
* | ||
* Mutates the object. | ||
* Mutates the object depending on the options.clone key. | ||
*/ | ||
declare function deepMerge<T extends Record<PropertyKey, any>>(t: T, ...s: DeepPartial<T>[]): T; | ||
/** | ||
* Merge objects with array merge and filtering them uniquely. | ||
* | ||
* Mutates the object. | ||
*/ | ||
declare function deepMergeWithUniqueMergeArray<T extends Record<PropertyKey, any>>(t: T, ...s: DeepPartial<T>[]): T; | ||
/** | ||
* Merge objects with overwriting the target array with source array. | ||
* | ||
* Mutates the object. | ||
*/ | ||
declare function deepMergeWithArrayOverwrite<T extends Record<PropertyKey, any>>(t: T, ...s: DeepPartial<T>[]): T; | ||
/** | ||
* A standard array filter for filtering it to unique items. | ||
*/ | ||
declare const uniqueArrayFilter: (item: any, index: number, array: any[]) => boolean; | ||
declare function merge<T extends Record<PropertyKey, any>>(options: DeepMergeOptions | null, t: T, ...s: DeepPartial<T>[]): T; | ||
export { deepMerge, deepMergeWithArrayOverwrite, deepMergeWithUniqueMergeArray, uniqueArrayFilter }; | ||
export { merge }; |
@@ -27,41 +27,34 @@ var __create = Object.create; | ||
__export(merge_exports, { | ||
deepMerge: () => deepMerge, | ||
deepMergeWithArrayOverwrite: () => deepMergeWithArrayOverwrite, | ||
deepMergeWithUniqueMergeArray: () => deepMergeWithUniqueMergeArray, | ||
uniqueArrayFilter: () => uniqueArrayFilter | ||
merge: () => merge | ||
}); | ||
module.exports = __toCommonJS(merge_exports); | ||
var import_deepmerge = __toESM(require("deepmerge")); | ||
function deepMerge(t, ...s) { | ||
return deepMergeWithUniqueMergeArray(t, ...s); | ||
} | ||
__name(deepMerge, "deepMerge"); | ||
function deepMergeWithUniqueMergeArray(t, ...s) { | ||
var import_constants = require("./constants"); | ||
var import_utils = require("./utils"); | ||
function merge(options, t, ...s) { | ||
options = { | ||
arrayMerge: import_constants.ArrayMergeBehavior.UNIQUE, | ||
clone: true, | ||
...options ?? {} | ||
}; | ||
let arrayMerge; | ||
if (typeof options.arrayMerge === "function") { | ||
arrayMerge = options.arrayMerge; | ||
} else if (options.arrayMerge === import_constants.ArrayMergeBehavior.OVERWRITE) { | ||
arrayMerge = import_utils.arrayMergeOverwrite; | ||
} else if (options.arrayMerge === import_constants.ArrayMergeBehavior.UNIQUE) { | ||
arrayMerge = import_utils.arrayMergeUnique; | ||
} | ||
return import_deepmerge.default.all([ | ||
t, | ||
t ?? {}, | ||
...s ?? [] | ||
], { | ||
arrayMerge: (target, source) => [ | ||
...target, | ||
...source | ||
].filter(uniqueArrayFilter) | ||
clone: options.clone, | ||
arrayMerge | ||
}); | ||
} | ||
__name(deepMergeWithUniqueMergeArray, "deepMergeWithUniqueMergeArray"); | ||
function deepMergeWithArrayOverwrite(t, ...s) { | ||
return import_deepmerge.default.all([ | ||
t, | ||
...s ?? [] | ||
], { | ||
arrayMerge: (_, source) => source | ||
}); | ||
} | ||
__name(deepMergeWithArrayOverwrite, "deepMergeWithArrayOverwrite"); | ||
const uniqueArrayFilter = /* @__PURE__ */ __name((item, index, array) => array.indexOf(item) === index, "uniqueArrayFilter"); | ||
__name(merge, "merge"); | ||
// Annotate the CommonJS export names for ESM import in node: | ||
0 && (module.exports = { | ||
deepMerge, | ||
deepMergeWithArrayOverwrite, | ||
deepMergeWithUniqueMergeArray, | ||
uniqueArrayFilter | ||
merge | ||
}); |
{ | ||
"name": "@webundsoehne/deep-merge", | ||
"description": "Generic object deepmerge.", | ||
"version": "3.0.1", | ||
"version": "4.0.0", | ||
"author": "Backend <backend@webundsoehne.com>", | ||
@@ -6,0 +6,0 @@ "repository": "https://github.com/tailoredmedia/backend-nx-skeleton", |
11399
13
198