diff --git a/docs/API.md b/docs/API.md index 5a1678fb..d23f71a3 100644 --- a/docs/API.md +++ b/docs/API.md @@ -27,7 +27,7 @@ All these options are optional. #### `mergeRecords` -Type: `false | (values: Record[], utils: DeepMergeFunctionUtils, meta: MetaData) => unknown` +Type: `false | (values: Record[], utils: DeepMergeUtils, meta: MetaData) => unknown` If `false`, records won't be merged. If set to a function, that function will be used to merge records. @@ -35,25 +35,25 @@ Note: Records are "vanilla" objects (e.g. `{ foo: "hello", bar: "world" }`). #### `mergeArrays` -Type: `false | (values: unknown[][], utils: DeepMergeFunctionUtils, meta: MetaData) => unknown` +Type: `false | (values: unknown[][], utils: DeepMergeUtils, meta: MetaData) => unknown` If `false`, arrays won't be merged. If set to a function, that function will be used to merge arrays. #### `mergeMaps` -Type: `false | (values: Map[], utils: DeepMergeFunctionUtils, meta: MetaData) => unknown` +Type: `false | (values: Map[], utils: DeepMergeUtils, meta: MetaData) => unknown` If `false`, maps won't be merged. If set to a function, that function will be used to merge maps. #### `mergeSets` -Type: `false | (values: Set[], utils: DeepMergeFunctionUtils, meta: MetaData) => unknown` +Type: `false | (values: Set[], utils: DeepMergeUtils, meta: MetaData) => unknown` If `false`, sets won't be merged. If set to a function, that function will be used to merge sets. #### `mergeOthers` -Type: `(values: unknown[], utils: DeepMergeFunctionUtils, meta: MetaData) => unknown` +Type: `(values: unknown[], utils: DeepMergeUtils, meta: MetaData) => unknown` If set to a function, that function will be used to merge everything else. @@ -72,7 +72,7 @@ Type: `MetaData` The given meta data value will be passed to root level merges. -### DeepMergeFunctionUtils +### DeepMergeUtils This is a set of utility functions that are made available to your custom merge functions. @@ -115,7 +115,7 @@ All these options are optional. #### `mergeRecords` -Type: `false | (target: DeepMergeValueReference>, values: Record[], utils: DeepMergeFunctionUtils, meta: MetaData) => void | symbol` +Type: `false | (target: DeepMergeValueReference>, values: Record[], utils: DeepMergeUtils, meta: MetaData) => void | symbol` If `false`, records won't be merged. If set to a function, that function will be used to merge records by mutating `target.value`. diff --git a/src/deepmerge.ts b/src/deepmerge.ts index 6c816d46..94d37f14 100644 --- a/src/deepmerge.ts +++ b/src/deepmerge.ts @@ -6,11 +6,11 @@ import { import * as defaultMergeFunctions from "./defaults/vanilla"; import { type DeepMergeBuiltInMetaData, - type DeepMergeFunctionUtils, type DeepMergeFunctionsDefaultURIs, type DeepMergeFunctionsURIs, type DeepMergeHKT, type DeepMergeOptions, + type DeepMergeUtils, type GetDeepMergeFunctionsURIs, } from "./types"; import { ObjectType, getObjectType } from "./utils"; @@ -80,7 +80,7 @@ export function deepmergeCustom< ...objects: Ts ) => DeepMergeHKT, MetaData>; - const utils: DeepMergeFunctionUtils = getUtils( + const utils: DeepMergeUtils = getUtils( options, customizedDeepmerge as CustomizedDeepmerge, ); @@ -111,8 +111,8 @@ function getUtils< MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, >( options: DeepMergeOptions, - customizedDeepmerge: DeepMergeFunctionUtils["deepmerge"], -): DeepMergeFunctionUtils { + customizedDeepmerge: DeepMergeUtils["deepmerge"], +): DeepMergeUtils { return { defaultMergeFunctions, mergeFunctions: { @@ -126,9 +126,9 @@ function getUtils< : [key, option], ), ), - } as DeepMergeFunctionUtils["mergeFunctions"], + } as DeepMergeUtils["mergeFunctions"], metaDataUpdater: (options.metaDataUpdater ?? - defaultMetaDataUpdater) as unknown as DeepMergeFunctionUtils< + defaultMetaDataUpdater) as unknown as DeepMergeUtils< M, MM >["metaDataUpdater"], @@ -149,7 +149,7 @@ function getUtils< */ export function mergeUnknowns< Ts extends ReadonlyArray, - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, Fs extends DeepMergeFunctionsURIs, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, @@ -234,7 +234,7 @@ export function mergeUnknowns< * @param values - The records. */ function mergeRecords< - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, Fs extends DeepMergeFunctionsURIs, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, @@ -270,7 +270,7 @@ function mergeRecords< * @param values - The arrays. */ function mergeArrays< - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, >( @@ -298,7 +298,7 @@ function mergeArrays< * @param values - The sets. */ function mergeSets< - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, >( @@ -325,7 +325,7 @@ function mergeSets< * @param values - The maps. */ function mergeMaps< - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, >( @@ -352,7 +352,7 @@ function mergeMaps< * @param values - The other things. */ function mergeOthers< - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, >(values: ReadonlyArray, utils: U, meta: M | undefined) { diff --git a/src/defaults/vanilla.ts b/src/defaults/vanilla.ts index f2276260..e28be1f6 100644 --- a/src/defaults/vanilla.ts +++ b/src/defaults/vanilla.ts @@ -3,11 +3,11 @@ import { mergeUnknowns } from "../deepmerge"; import { type DeepMergeArraysDefaultHKT, type DeepMergeBuiltInMetaData, - type DeepMergeFunctionUtils, type DeepMergeFunctionsURIs, type DeepMergeMapsDefaultHKT, type DeepMergeRecordsDefaultHKT, type DeepMergeSetsDefaultHKT, + type DeepMergeUtils, } from "../types"; import { getIterableOfIterables, getKeys, objectHasProperty } from "../utils"; @@ -29,7 +29,7 @@ export type MergeFunctions = { */ export function mergeRecords< Ts extends ReadonlyArray>, - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, Fs extends DeepMergeFunctionsURIs, M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, diff --git a/src/index.ts b/src/index.ts index b572acbf..d62fa942 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,7 +20,7 @@ export type { DeepMergeFunctionsDefaultURIs, DeepMergeFunctionsURIs, DeepMergeFunctionURItoKind, - DeepMergeFunctionUtils, + DeepMergeUtils, DeepMergeIntoFunctionUtils, DeepMergeOptions, DeepMergeIntoOptions, diff --git a/src/types/options.ts b/src/types/options.ts index cb629d9f..d60a5e06 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -83,7 +83,7 @@ type DeepMergeFunctions< > = Readonly<{ mergeRecords: < Ts extends ReadonlyArray>>, - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, >( values: Ts, utils: U, @@ -92,7 +92,7 @@ type DeepMergeFunctions< mergeArrays: < Ts extends ReadonlyArray>, - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, >( values: Ts, utils: U, @@ -101,7 +101,7 @@ type DeepMergeFunctions< mergeMaps: < Ts extends ReadonlyArray>>, - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, >( values: Ts, utils: U, @@ -110,7 +110,7 @@ type DeepMergeFunctions< mergeSets: < Ts extends ReadonlyArray>>, - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, >( values: Ts, utils: U, @@ -119,7 +119,7 @@ type DeepMergeFunctions< mergeOthers: < Ts extends ReadonlyArray, - U extends DeepMergeFunctionUtils, + U extends DeepMergeUtils, >( values: Ts, utils: U, @@ -191,7 +191,7 @@ type DeepMergeIntoFunctions< /** * The utils provided to the merge functions. */ -export type DeepMergeFunctionUtils< +export type DeepMergeUtils< in out M, MM extends DeepMergeBuiltInMetaData = DeepMergeBuiltInMetaData, > = Readonly<{