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
- The repo shows recent upstream activity (last push 2026-06-04), but the provided history of published updates stops at v7.1.5 on 2025-02-23, about 16 months ago, so it appears effectively quiet for end users.
- Apparent update cadence: several releases in 2024 (v7.0.0 through v7.0.3, then v7.1.1 and v7.1.2 in Oct 2024), followed by fewer changes and a long gap after v7.1.5 in Feb 2025.
AI summary generated
Recent updates
v7.1.5
v7.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
v7.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
The 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
v7.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
Release 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
v7.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
v7.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
Release 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
v7.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
v7.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