diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dfa6882..71cdb31a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Changelog All notable changes to this project will be documented in this file. Dates are displayed in UTC. +## [7.0.3](https://github.com/RebeccaStevens/deepmerge-ts/compare/v7.0.2...v7.0.3) (2024-06-06) + + +### Bug Fixes + +* merge functions' types ([ca94270](https://github.com/RebeccaStevens/deepmerge-ts/commit/ca94270da73d0a071043ef0e8936b17c444e40ab)) + ## [7.0.2](https://github.com/RebeccaStevens/deepmerge-ts/compare/v7.0.1...v7.0.2) (2024-06-03) diff --git a/dist/deno/deepmerge-into.ts b/dist/deno/deepmerge-into.ts index b822bf90..0abcdb2d 100644 --- a/dist/deno/deepmerge-into.ts +++ b/dist/deno/deepmerge-into.ts @@ -3,7 +3,7 @@ import { defaultFilterValues, defaultMetaDataUpdater, } from "./defaults/general.ts"; -import * as defaultMergeIntoFunctions from "./defaults/into.ts"; +import { mergeIntoFunctions as defaultMergeIntoFunctions } from "./defaults/into.ts"; import { type DeepMergeBuiltInMetaData, type DeepMergeFunctionsDefaultURIs, diff --git a/dist/deno/deepmerge.ts b/dist/deno/deepmerge.ts index f4d39983..409074ff 100644 --- a/dist/deno/deepmerge.ts +++ b/dist/deno/deepmerge.ts @@ -3,7 +3,7 @@ import { defaultFilterValues, defaultMetaDataUpdater, } from "./defaults/general.ts"; -import * as defaultMergeFunctions from "./defaults/vanilla.ts"; +import { mergeFunctions as defaultMergeFunctions } from "./defaults/vanilla.ts"; import { type DeepMergeBuiltInMetaData, type DeepMergeFunctionsDefaultURIs, diff --git a/dist/deno/defaults/into.ts b/dist/deno/defaults/into.ts index 65ae1a9a..e8b3edd8 100644 --- a/dist/deno/defaults/into.ts +++ b/dist/deno/defaults/into.ts @@ -10,11 +10,11 @@ import { getIterableOfIterables, getKeys, objectHasProperty } from "../utils.ts" * The default merge functions. */ export type MergeFunctions = { - mergeRecords: typeof mergeRecords; - mergeArrays: typeof mergeArrays; - mergeSets: typeof mergeSets; - mergeMaps: typeof mergeMaps; - mergeOthers: typeof mergeOthers; + mergeRecords: typeof mergeRecordsInto; + mergeArrays: typeof mergeArraysInto; + mergeSets: typeof mergeSetsInto; + mergeMaps: typeof mergeMapsInto; + mergeOthers: typeof mergeOthersInto; }; /** @@ -23,7 +23,7 @@ export type MergeFunctions = { * @param m_target - The result will be mutated into this record * @param values - The records (including the target's value if there is one). */ -export function mergeRecords< +function mergeRecordsInto< Ts extends ReadonlyArray>, U extends DeepMergeIntoFunctionUtils, M, @@ -79,7 +79,7 @@ export function mergeRecords< * @param m_target - The result will be mutated into this array * @param values - The arrays (including the target's value if there is one). */ -export function mergeArrays>>( +function mergeArraysInto>>( m_target: Reference, values: Ts, ): void { @@ -92,7 +92,7 @@ export function mergeArrays>>( * @param m_target - The result will be mutated into this set * @param values - The sets (including the target's value if there is one). */ -export function mergeSets< +function mergeSetsInto< Ts extends ReadonlyArray>>, >(m_target: Reference>, values: Ts): void { for (const value of getIterableOfIterables(values.slice(1))) { @@ -106,7 +106,7 @@ export function mergeSets< * @param m_target - The result will be mutated into this map * @param values - The maps (including the target's value if there is one). */ -export function mergeMaps< +function mergeMapsInto< Ts extends ReadonlyArray>>, >(m_target: Reference>, values: Ts): void { for (const [key, value] of getIterableOfIterables(values.slice(1))) { @@ -117,9 +117,20 @@ export function mergeMaps< /** * Set the target to the last non-undefined value. */ -export function mergeOthers>( +function mergeOthersInto>( m_target: Reference, values: Ts, ) { m_target.value = values.at(-1); } + +/** + * The merge functions. + */ +export const mergeIntoFunctions = { + mergeRecords: mergeRecordsInto, + mergeArrays: mergeArraysInto, + mergeSets: mergeSetsInto, + mergeMaps: mergeMapsInto, + mergeOthers: mergeOthersInto, +}; diff --git a/dist/deno/defaults/vanilla.ts b/dist/deno/defaults/vanilla.ts index a3bd2d60..d56ea72f 100644 --- a/dist/deno/defaults/vanilla.ts +++ b/dist/deno/defaults/vanilla.ts @@ -27,7 +27,7 @@ export type MergeFunctions = { * * @param values - The records. */ -export function mergeRecords< +function mergeRecords< Ts extends ReadonlyArray>, U extends DeepMergeUtils, Fs extends DeepMergeFunctionsURIs, @@ -88,7 +88,7 @@ export function mergeRecords< * * @param values - The arrays. */ -export function mergeArrays< +function mergeArrays< Ts extends ReadonlyArray>, Fs extends DeepMergeFunctionsURIs, M, @@ -101,9 +101,9 @@ export function mergeArrays< * * @param values - The sets. */ -export function mergeSets< - Ts extends ReadonlyArray>>, ->(values: Ts): DeepMergeSetsDefaultHKT { +function mergeSets>>>( + values: Ts, +): DeepMergeSetsDefaultHKT { return new Set(getIterableOfIterables(values)) as DeepMergeSetsDefaultHKT; } @@ -112,7 +112,7 @@ export function mergeSets< * * @param values - The maps. */ -export function mergeMaps< +function mergeMaps< Ts extends ReadonlyArray>>, >(values: Ts): DeepMergeMapsDefaultHKT { return new Map(getIterableOfIterables(values)) as DeepMergeMapsDefaultHKT; @@ -121,6 +121,17 @@ export function mergeMaps< /** * Get the last non-undefined value in the given array. */ -export function mergeOthers>(values: Ts) { +function mergeOthers>(values: Ts) { return values.at(-1); } + +/** + * The merge functions. + */ +export const mergeFunctions = { + mergeRecords, + mergeArrays, + mergeSets, + mergeMaps, + mergeOthers, +}; diff --git a/dist/node/index.cjs b/dist/node/index.cjs index 50955e04..0d835033 100644 --- a/dist/node/index.cjs +++ b/dist/node/index.cjs @@ -151,7 +151,7 @@ function isRecord(value) { * * @param values - The records. */ -function mergeRecords$2(values, utils, meta) { +function mergeRecords$1(values, utils, meta) { const result = {}; for (const key of getKeys(values)) { const propValues = []; @@ -190,7 +190,7 @@ function mergeRecords$2(values, utils, meta) { * * @param values - The arrays. */ -function mergeArrays$2(values) { +function mergeArrays$1(values) { return values.flat(); } /** @@ -198,7 +198,7 @@ function mergeArrays$2(values) { * * @param values - The sets. */ -function mergeSets$2(values) { +function mergeSets$1(values) { return new Set(getIterableOfIterables(values)); } /** @@ -206,24 +206,25 @@ function mergeSets$2(values) { * * @param values - The maps. */ -function mergeMaps$2(values) { +function mergeMaps$1(values) { return new Map(getIterableOfIterables(values)); } /** * Get the last non-undefined value in the given array. */ -function mergeOthers$2(values) { +function mergeOthers$1(values) { return values.at(-1); } - -var defaultMergeFunctions = /*#__PURE__*/Object.freeze({ - __proto__: null, - mergeArrays: mergeArrays$2, - mergeMaps: mergeMaps$2, - mergeOthers: mergeOthers$2, - mergeRecords: mergeRecords$2, - mergeSets: mergeSets$2 -}); +/** + * The merge functions. + */ +const mergeFunctions = { + mergeRecords: mergeRecords$1, + mergeArrays: mergeArrays$1, + mergeSets: mergeSets$1, + mergeMaps: mergeMaps$1, + mergeOthers: mergeOthers$1, +}; /** * Deeply merge objects. @@ -250,13 +251,13 @@ function deepmergeCustom(options, rootMetaData) { */ function getUtils(options, customizedDeepmerge) { return { - defaultMergeFunctions, + defaultMergeFunctions: mergeFunctions, mergeFunctions: { - ...defaultMergeFunctions, + ...mergeFunctions, ...Object.fromEntries(Object.entries(options) - .filter(([key, option]) => Object.hasOwn(defaultMergeFunctions, key)) + .filter(([key, option]) => Object.hasOwn(mergeFunctions, key)) .map(([key, option]) => option === false - ? [key, mergeOthers$2] + ? [key, mergeFunctions.mergeOthers] : [key, option])), }, metaDataUpdater: (options.metaDataUpdater ?? @@ -280,7 +281,7 @@ function mergeUnknowns(values, utils, meta) { return undefined; } if (filteredValues.length === 1) { - return mergeOthers$1(filteredValues, utils, meta); + return mergeOthers(filteredValues, utils, meta); } const type = getObjectType(filteredValues[0]); if (type !== 0 /* ObjectType.NOT */ && type !== 5 /* ObjectType.OTHER */) { @@ -288,24 +289,24 @@ function mergeUnknowns(values, utils, meta) { if (getObjectType(filteredValues[m_index]) === type) { continue; } - return mergeOthers$1(filteredValues, utils, meta); + return mergeOthers(filteredValues, utils, meta); } } switch (type) { case 1 /* ObjectType.RECORD */: { - return mergeRecords$1(filteredValues, utils, meta); + return mergeRecords(filteredValues, utils, meta); } case 2 /* ObjectType.ARRAY */: { - return mergeArrays$1(filteredValues, utils, meta); + return mergeArrays(filteredValues, utils, meta); } case 3 /* ObjectType.SET */: { - return mergeSets$1(filteredValues, utils, meta); + return mergeSets(filteredValues, utils, meta); } case 4 /* ObjectType.MAP */: { - return mergeMaps$1(filteredValues, utils, meta); + return mergeMaps(filteredValues, utils, meta); } default: { - return mergeOthers$1(filteredValues, utils, meta); + return mergeOthers(filteredValues, utils, meta); } } } @@ -314,7 +315,7 @@ function mergeUnknowns(values, utils, meta) { * * @param values - The records. */ -function mergeRecords$1(values, utils, meta) { +function mergeRecords(values, utils, meta) { const result = utils.mergeFunctions.mergeRecords(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -330,7 +331,7 @@ function mergeRecords$1(values, utils, meta) { * * @param values - The arrays. */ -function mergeArrays$1(values, utils, meta) { +function mergeArrays(values, utils, meta) { const result = utils.mergeFunctions.mergeArrays(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -346,7 +347,7 @@ function mergeArrays$1(values, utils, meta) { * * @param values - The sets. */ -function mergeSets$1(values, utils, meta) { +function mergeSets(values, utils, meta) { const result = utils.mergeFunctions.mergeSets(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -361,7 +362,7 @@ function mergeSets$1(values, utils, meta) { * * @param values - The maps. */ -function mergeMaps$1(values, utils, meta) { +function mergeMaps(values, utils, meta) { const result = utils.mergeFunctions.mergeMaps(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -376,7 +377,7 @@ function mergeMaps$1(values, utils, meta) { * * @param values - The other things. */ -function mergeOthers$1(values, utils, meta) { +function mergeOthers(values, utils, meta) { const result = utils.mergeFunctions.mergeOthers(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -394,7 +395,7 @@ function mergeOthers$1(values, utils, meta) { * @param m_target - The result will be mutated into this record * @param values - The records (including the target's value if there is one). */ -function mergeRecords(m_target, values, utils, meta) { +function mergeRecordsInto$1(m_target, values, utils, meta) { for (const key of getKeys(values)) { const propValues = []; for (const value of values) { @@ -430,7 +431,7 @@ function mergeRecords(m_target, values, utils, meta) { * @param m_target - The result will be mutated into this array * @param values - The arrays (including the target's value if there is one). */ -function mergeArrays(m_target, values) { +function mergeArraysInto$1(m_target, values) { m_target.value.push(...values.slice(1).flat()); } /** @@ -439,7 +440,7 @@ function mergeArrays(m_target, values) { * @param m_target - The result will be mutated into this set * @param values - The sets (including the target's value if there is one). */ -function mergeSets(m_target, values) { +function mergeSetsInto$1(m_target, values) { for (const value of getIterableOfIterables(values.slice(1))) { m_target.value.add(value); } @@ -450,7 +451,7 @@ function mergeSets(m_target, values) { * @param m_target - The result will be mutated into this map * @param values - The maps (including the target's value if there is one). */ -function mergeMaps(m_target, values) { +function mergeMapsInto$1(m_target, values) { for (const [key, value] of getIterableOfIterables(values.slice(1))) { m_target.value.set(key, value); } @@ -458,18 +459,19 @@ function mergeMaps(m_target, values) { /** * Set the target to the last non-undefined value. */ -function mergeOthers(m_target, values) { +function mergeOthersInto$1(m_target, values) { m_target.value = values.at(-1); } - -var defaultMergeIntoFunctions = /*#__PURE__*/Object.freeze({ - __proto__: null, - mergeArrays: mergeArrays, - mergeMaps: mergeMaps, - mergeOthers: mergeOthers, - mergeRecords: mergeRecords, - mergeSets: mergeSets -}); +/** + * The merge functions. + */ +const mergeIntoFunctions = { + mergeRecords: mergeRecordsInto$1, + mergeArrays: mergeArraysInto$1, + mergeSets: mergeSetsInto$1, + mergeMaps: mergeMapsInto$1, + mergeOthers: mergeOthersInto$1, +}; function deepmergeInto(target, ...objects) { return void deepmergeIntoCustom({})(target, ...objects); @@ -491,13 +493,13 @@ function deepmergeIntoCustom(options, rootMetaData) { */ function getIntoUtils(options, customizedDeepmergeInto) { return { - defaultMergeFunctions: defaultMergeIntoFunctions, + defaultMergeFunctions: mergeIntoFunctions, mergeFunctions: { - ...defaultMergeIntoFunctions, + ...mergeIntoFunctions, ...Object.fromEntries(Object.entries(options) - .filter(([key, option]) => Object.hasOwn(defaultMergeIntoFunctions, key)) + .filter(([key, option]) => Object.hasOwn(mergeIntoFunctions, key)) .map(([key, option]) => option === false - ? [key, mergeOthers] + ? [key, mergeIntoFunctions.mergeOthers] : [key, option])), }, metaDataUpdater: (options.metaDataUpdater ?? diff --git a/dist/node/index.d.cts b/dist/node/index.d.cts index 6b1ddd24..6f4d114a 100644 --- a/dist/node/index.d.cts +++ b/dist/node/index.d.cts @@ -586,11 +586,11 @@ type GetDeepMergeFunctionsURIs> = Re * The default merge functions. */ type MergeFunctions = { - mergeRecords: typeof mergeRecords; - mergeArrays: typeof mergeArrays; - mergeSets: typeof mergeSets; - mergeMaps: typeof mergeMaps; - mergeOthers: typeof mergeOthers; + mergeRecords: typeof mergeRecordsInto; + mergeArrays: typeof mergeArraysInto; + mergeSets: typeof mergeSetsInto; + mergeMaps: typeof mergeMapsInto; + mergeOthers: typeof mergeOthersInto; }; /** * The default strategy to merge records into a target record. @@ -598,32 +598,32 @@ type MergeFunctions = { * @param m_target - The result will be mutated into this record * @param values - The records (including the target's value if there is one). */ -declare function mergeRecords>, U extends DeepMergeIntoFunctionUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData>(m_target: Reference>, values: Ts, utils: U, meta: M | undefined): void; +declare function mergeRecordsInto>, U extends DeepMergeIntoFunctionUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData>(m_target: Reference>, values: Ts, utils: U, meta: M | undefined): void; /** * The default strategy to merge arrays into a target array. * * @param m_target - The result will be mutated into this array * @param values - The arrays (including the target's value if there is one). */ -declare function mergeArrays>>(m_target: Reference, values: Ts): void; +declare function mergeArraysInto>>(m_target: Reference, values: Ts): void; /** * The default strategy to merge sets into a target set. * * @param m_target - The result will be mutated into this set * @param values - The sets (including the target's value if there is one). */ -declare function mergeSets>>>(m_target: Reference>, values: Ts): void; +declare function mergeSetsInto>>>(m_target: Reference>, values: Ts): void; /** * The default strategy to merge maps into a target map. * * @param m_target - The result will be mutated into this map * @param values - The maps (including the target's value if there is one). */ -declare function mergeMaps>>>(m_target: Reference>, values: Ts): void; +declare function mergeMapsInto>>>(m_target: Reference>, values: Ts): void; /** * Set the target to the last non-undefined value. */ -declare function mergeOthers>(m_target: Reference, values: Ts): void; +declare function mergeOthersInto>(m_target: Reference, values: Ts): void; type MergeIntoFunctions = MergeFunctions; /** * The default merge functions. @@ -635,6 +635,34 @@ type MergeFunctions$0 = { mergeMaps: typeof mergeMaps; mergeOthers: typeof mergeOthers; }; +/** + * The default strategy to merge records. + * + * @param values - The records. + */ +declare function mergeRecords>, U extends DeepMergeUtils, Fs extends DeepMergeFunctionsURIs, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData>(values: Ts, utils: U, meta: M | undefined): DeepMergeRecordsDefaultHKT; +/** + * The default strategy to merge arrays. + * + * @param values - The arrays. + */ +declare function mergeArrays>, Fs extends DeepMergeFunctionsURIs, M>(values: Ts): DeepMergeArraysDefaultHKT; +/** + * The default strategy to merge sets. + * + * @param values - The sets. + */ +declare function mergeSets>>>(values: Ts): DeepMergeSetsDefaultHKT; +/** + * The default strategy to merge maps. + * + * @param values - The maps. + */ +declare function mergeMaps>>>(values: Ts): DeepMergeMapsDefaultHKT; +/** + * Get the last non-undefined value in the given array. + */ +declare function mergeOthers>(values: Ts): unknown; /** * The options the user can pass to customize deepmerge. */ diff --git a/dist/node/index.d.mts b/dist/node/index.d.mts index 6b1ddd24..6f4d114a 100644 --- a/dist/node/index.d.mts +++ b/dist/node/index.d.mts @@ -586,11 +586,11 @@ type GetDeepMergeFunctionsURIs> = Re * The default merge functions. */ type MergeFunctions = { - mergeRecords: typeof mergeRecords; - mergeArrays: typeof mergeArrays; - mergeSets: typeof mergeSets; - mergeMaps: typeof mergeMaps; - mergeOthers: typeof mergeOthers; + mergeRecords: typeof mergeRecordsInto; + mergeArrays: typeof mergeArraysInto; + mergeSets: typeof mergeSetsInto; + mergeMaps: typeof mergeMapsInto; + mergeOthers: typeof mergeOthersInto; }; /** * The default strategy to merge records into a target record. @@ -598,32 +598,32 @@ type MergeFunctions = { * @param m_target - The result will be mutated into this record * @param values - The records (including the target's value if there is one). */ -declare function mergeRecords>, U extends DeepMergeIntoFunctionUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData>(m_target: Reference>, values: Ts, utils: U, meta: M | undefined): void; +declare function mergeRecordsInto>, U extends DeepMergeIntoFunctionUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData>(m_target: Reference>, values: Ts, utils: U, meta: M | undefined): void; /** * The default strategy to merge arrays into a target array. * * @param m_target - The result will be mutated into this array * @param values - The arrays (including the target's value if there is one). */ -declare function mergeArrays>>(m_target: Reference, values: Ts): void; +declare function mergeArraysInto>>(m_target: Reference, values: Ts): void; /** * The default strategy to merge sets into a target set. * * @param m_target - The result will be mutated into this set * @param values - The sets (including the target's value if there is one). */ -declare function mergeSets>>>(m_target: Reference>, values: Ts): void; +declare function mergeSetsInto>>>(m_target: Reference>, values: Ts): void; /** * The default strategy to merge maps into a target map. * * @param m_target - The result will be mutated into this map * @param values - The maps (including the target's value if there is one). */ -declare function mergeMaps>>>(m_target: Reference>, values: Ts): void; +declare function mergeMapsInto>>>(m_target: Reference>, values: Ts): void; /** * Set the target to the last non-undefined value. */ -declare function mergeOthers>(m_target: Reference, values: Ts): void; +declare function mergeOthersInto>(m_target: Reference, values: Ts): void; type MergeIntoFunctions = MergeFunctions; /** * The default merge functions. @@ -635,6 +635,34 @@ type MergeFunctions$0 = { mergeMaps: typeof mergeMaps; mergeOthers: typeof mergeOthers; }; +/** + * The default strategy to merge records. + * + * @param values - The records. + */ +declare function mergeRecords>, U extends DeepMergeUtils, Fs extends DeepMergeFunctionsURIs, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData>(values: Ts, utils: U, meta: M | undefined): DeepMergeRecordsDefaultHKT; +/** + * The default strategy to merge arrays. + * + * @param values - The arrays. + */ +declare function mergeArrays>, Fs extends DeepMergeFunctionsURIs, M>(values: Ts): DeepMergeArraysDefaultHKT; +/** + * The default strategy to merge sets. + * + * @param values - The sets. + */ +declare function mergeSets>>>(values: Ts): DeepMergeSetsDefaultHKT; +/** + * The default strategy to merge maps. + * + * @param values - The maps. + */ +declare function mergeMaps>>>(values: Ts): DeepMergeMapsDefaultHKT; +/** + * Get the last non-undefined value in the given array. + */ +declare function mergeOthers>(values: Ts): unknown; /** * The options the user can pass to customize deepmerge. */ diff --git a/dist/node/index.mjs b/dist/node/index.mjs index d71554bb..643cef67 100644 --- a/dist/node/index.mjs +++ b/dist/node/index.mjs @@ -149,7 +149,7 @@ function isRecord(value) { * * @param values - The records. */ -function mergeRecords$2(values, utils, meta) { +function mergeRecords$1(values, utils, meta) { const result = {}; for (const key of getKeys(values)) { const propValues = []; @@ -188,7 +188,7 @@ function mergeRecords$2(values, utils, meta) { * * @param values - The arrays. */ -function mergeArrays$2(values) { +function mergeArrays$1(values) { return values.flat(); } /** @@ -196,7 +196,7 @@ function mergeArrays$2(values) { * * @param values - The sets. */ -function mergeSets$2(values) { +function mergeSets$1(values) { return new Set(getIterableOfIterables(values)); } /** @@ -204,24 +204,25 @@ function mergeSets$2(values) { * * @param values - The maps. */ -function mergeMaps$2(values) { +function mergeMaps$1(values) { return new Map(getIterableOfIterables(values)); } /** * Get the last non-undefined value in the given array. */ -function mergeOthers$2(values) { +function mergeOthers$1(values) { return values.at(-1); } - -var defaultMergeFunctions = /*#__PURE__*/Object.freeze({ - __proto__: null, - mergeArrays: mergeArrays$2, - mergeMaps: mergeMaps$2, - mergeOthers: mergeOthers$2, - mergeRecords: mergeRecords$2, - mergeSets: mergeSets$2 -}); +/** + * The merge functions. + */ +const mergeFunctions = { + mergeRecords: mergeRecords$1, + mergeArrays: mergeArrays$1, + mergeSets: mergeSets$1, + mergeMaps: mergeMaps$1, + mergeOthers: mergeOthers$1, +}; /** * Deeply merge objects. @@ -248,13 +249,13 @@ function deepmergeCustom(options, rootMetaData) { */ function getUtils(options, customizedDeepmerge) { return { - defaultMergeFunctions, + defaultMergeFunctions: mergeFunctions, mergeFunctions: { - ...defaultMergeFunctions, + ...mergeFunctions, ...Object.fromEntries(Object.entries(options) - .filter(([key, option]) => Object.hasOwn(defaultMergeFunctions, key)) + .filter(([key, option]) => Object.hasOwn(mergeFunctions, key)) .map(([key, option]) => option === false - ? [key, mergeOthers$2] + ? [key, mergeFunctions.mergeOthers] : [key, option])), }, metaDataUpdater: (options.metaDataUpdater ?? @@ -278,7 +279,7 @@ function mergeUnknowns(values, utils, meta) { return undefined; } if (filteredValues.length === 1) { - return mergeOthers$1(filteredValues, utils, meta); + return mergeOthers(filteredValues, utils, meta); } const type = getObjectType(filteredValues[0]); if (type !== 0 /* ObjectType.NOT */ && type !== 5 /* ObjectType.OTHER */) { @@ -286,24 +287,24 @@ function mergeUnknowns(values, utils, meta) { if (getObjectType(filteredValues[m_index]) === type) { continue; } - return mergeOthers$1(filteredValues, utils, meta); + return mergeOthers(filteredValues, utils, meta); } } switch (type) { case 1 /* ObjectType.RECORD */: { - return mergeRecords$1(filteredValues, utils, meta); + return mergeRecords(filteredValues, utils, meta); } case 2 /* ObjectType.ARRAY */: { - return mergeArrays$1(filteredValues, utils, meta); + return mergeArrays(filteredValues, utils, meta); } case 3 /* ObjectType.SET */: { - return mergeSets$1(filteredValues, utils, meta); + return mergeSets(filteredValues, utils, meta); } case 4 /* ObjectType.MAP */: { - return mergeMaps$1(filteredValues, utils, meta); + return mergeMaps(filteredValues, utils, meta); } default: { - return mergeOthers$1(filteredValues, utils, meta); + return mergeOthers(filteredValues, utils, meta); } } } @@ -312,7 +313,7 @@ function mergeUnknowns(values, utils, meta) { * * @param values - The records. */ -function mergeRecords$1(values, utils, meta) { +function mergeRecords(values, utils, meta) { const result = utils.mergeFunctions.mergeRecords(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -328,7 +329,7 @@ function mergeRecords$1(values, utils, meta) { * * @param values - The arrays. */ -function mergeArrays$1(values, utils, meta) { +function mergeArrays(values, utils, meta) { const result = utils.mergeFunctions.mergeArrays(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -344,7 +345,7 @@ function mergeArrays$1(values, utils, meta) { * * @param values - The sets. */ -function mergeSets$1(values, utils, meta) { +function mergeSets(values, utils, meta) { const result = utils.mergeFunctions.mergeSets(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -359,7 +360,7 @@ function mergeSets$1(values, utils, meta) { * * @param values - The maps. */ -function mergeMaps$1(values, utils, meta) { +function mergeMaps(values, utils, meta) { const result = utils.mergeFunctions.mergeMaps(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -374,7 +375,7 @@ function mergeMaps$1(values, utils, meta) { * * @param values - The other things. */ -function mergeOthers$1(values, utils, meta) { +function mergeOthers(values, utils, meta) { const result = utils.mergeFunctions.mergeOthers(values, utils, meta); if (result === actions.defaultMerge || (utils.useImplicitDefaultMerging && @@ -392,7 +393,7 @@ function mergeOthers$1(values, utils, meta) { * @param m_target - The result will be mutated into this record * @param values - The records (including the target's value if there is one). */ -function mergeRecords(m_target, values, utils, meta) { +function mergeRecordsInto$1(m_target, values, utils, meta) { for (const key of getKeys(values)) { const propValues = []; for (const value of values) { @@ -428,7 +429,7 @@ function mergeRecords(m_target, values, utils, meta) { * @param m_target - The result will be mutated into this array * @param values - The arrays (including the target's value if there is one). */ -function mergeArrays(m_target, values) { +function mergeArraysInto$1(m_target, values) { m_target.value.push(...values.slice(1).flat()); } /** @@ -437,7 +438,7 @@ function mergeArrays(m_target, values) { * @param m_target - The result will be mutated into this set * @param values - The sets (including the target's value if there is one). */ -function mergeSets(m_target, values) { +function mergeSetsInto$1(m_target, values) { for (const value of getIterableOfIterables(values.slice(1))) { m_target.value.add(value); } @@ -448,7 +449,7 @@ function mergeSets(m_target, values) { * @param m_target - The result will be mutated into this map * @param values - The maps (including the target's value if there is one). */ -function mergeMaps(m_target, values) { +function mergeMapsInto$1(m_target, values) { for (const [key, value] of getIterableOfIterables(values.slice(1))) { m_target.value.set(key, value); } @@ -456,18 +457,19 @@ function mergeMaps(m_target, values) { /** * Set the target to the last non-undefined value. */ -function mergeOthers(m_target, values) { +function mergeOthersInto$1(m_target, values) { m_target.value = values.at(-1); } - -var defaultMergeIntoFunctions = /*#__PURE__*/Object.freeze({ - __proto__: null, - mergeArrays: mergeArrays, - mergeMaps: mergeMaps, - mergeOthers: mergeOthers, - mergeRecords: mergeRecords, - mergeSets: mergeSets -}); +/** + * The merge functions. + */ +const mergeIntoFunctions = { + mergeRecords: mergeRecordsInto$1, + mergeArrays: mergeArraysInto$1, + mergeSets: mergeSetsInto$1, + mergeMaps: mergeMapsInto$1, + mergeOthers: mergeOthersInto$1, +}; function deepmergeInto(target, ...objects) { return void deepmergeIntoCustom({})(target, ...objects); @@ -489,13 +491,13 @@ function deepmergeIntoCustom(options, rootMetaData) { */ function getIntoUtils(options, customizedDeepmergeInto) { return { - defaultMergeFunctions: defaultMergeIntoFunctions, + defaultMergeFunctions: mergeIntoFunctions, mergeFunctions: { - ...defaultMergeIntoFunctions, + ...mergeIntoFunctions, ...Object.fromEntries(Object.entries(options) - .filter(([key, option]) => Object.hasOwn(defaultMergeIntoFunctions, key)) + .filter(([key, option]) => Object.hasOwn(mergeIntoFunctions, key)) .map(([key, option]) => option === false - ? [key, mergeOthers] + ? [key, mergeIntoFunctions.mergeOthers] : [key, option])), }, metaDataUpdater: (options.metaDataUpdater ??