deepmerge-ts is a TypeScript-first utility for deeply merging two or more objects while preserving type information. It includes support for merging arrays, Records, maps, and sets, and can be customized for different merge behaviors. Useful when you need “smart” deep merges with correct typing rather than simple shallow object merges.
Project status
- Actively maintained signals are present: the repository has a recent upstream push (2026-06-04), and the project has had multiple tagged version updates in the 2024 to early 2025 window.
- The apparent update cadence based on recent tagged versions is modest, with updates spaced roughly every 1 to 3 months (v7.1.3 in 2024-10-08, v7.1.4 in 2025-01-23, v7.1.5 in 2025-02-23).
AI summary generated Today
Recent updates
v7.1.5
2/23/2025v7.1.5 is a small release focused on improving TypeScript type merging for nested optional properties. The main functional change is at the type level, making merged property types more precise instead of always producing unions.
v7.1.4
1/23/2025v7.1.4 is a type-level bug fix focused on applying value filtering when selecting the leaf type during deep merges. The change is implemented by extending the leaf type computation to incorporate the filter HKT inputs, plus related type utility refactors.
v7.1.3
10/8/2024The release notes for v7.1.3 do not document any functional changes. The code diff shows this release primarily updates release tooling and documentation scaffolding (changelog entry) rather than runtime library behavior.
v7.1.2
10/8/2024v7.1.2 is a small release that claims a performance improvement using more efficient data structures. The diff shows the main functional change is in src/utils.ts, but it also shows large removals of dist build artifacts in the published diff view, plus several build/release tooling updates.
Breakingv7.1.1
10/4/2024Release v7.1.1 claims a TypeScript performance improvement by adding explicit return types to speed up type computation. The actual diff shows almost no runtime logic changes, but it does include substantial changes to published distribution files, especially TypeScript declaration generation and Deno entry/type artifacts.
Breakingv7.1.0
7/20/2024v7.1.0 primarily updates the project benchmarks to include a new comparison using the `defu` library. The only documented change in the release notes is the addition of this benchmark. The code diff also includes multiple CI and tooling updates (Node, pnpm, and dev dependency bumps) that are not mentioned in the release notes.
Featuresv7.0.3
6/6/2024v7.0.3 is a small release focused on fixing the TypeScript types for deep merge functions. The implementation changes mostly reorganize how default merge function strategies are defined and exported, with corresponding updates to generated type declarations.
v7.0.2
6/3/2024Release v7.0.2 contains a single user-facing bug fix intended to improve compatibility with older module resolution setups. The diff mainly updates packaging metadata (and tooling/doc files), with no changes to the deepmerge runtime implementation.
v7.0.1
5/21/2024v7.0.1 is a small bug fix release focused on improving how deepmerge handles partial types. The published code changes are entirely type-level (TypeScript and Deno type definitions), plus minor README/example and type-test updates.
v7.0.0
5/20/2024v7.0.0 is a refactor release that renames several exported DeepMerge utility and type names, and introduces a new mechanism to filter values before they are merged. The runtime implementation now supports a configurable filterValues option, and the type system adds corresponding generics to model the filtering behavior.
BreakingFeatures