Documentation / zerotal / index / deepMerge
Function: deepMerge()
deepMerge<
T>(base,override):T
Defined in: packages/core/src/support/deepMerge.ts:99
Deep-merge override onto base. Used by config factories (AppConfig,
CacheConfig, …) and BaseMiddleware.with() so user overrides change only the
keys they specify — at any depth — leaving every other default in place.
Nested plain objects merge recursively; arrays, primitives, and class instances
replace wholesale; undefined overrides are ignored; and the result is a fresh
value that shares no mutable plain structure with base or override. See the
file header for full semantics, including the array-replacement rule.
Type Parameters
T
T extends object
Parameters
base
T
override
Partial<T>
Returns
T
Examples
deepMerge(
{ cors: { origin: "*", credentials: false }, port: 3000 },
{ cors: { credentials: true } },
);
// → { cors: { origin: "*", credentials: true }, port: 3000 }
// Arrays replace — they are not concatenated:
deepMerge({ tags: ["a", "b"] }, { tags: ["c"] });
// → { tags: ["c"] }