@tanaab/merge
v1.0.0
Published
Deep object merging with configurable array merging strategies.
Readme
Overview
mergedeeply merges objects with configurable array handling.mergeArraysapplies explicit array strategies such as concatenation, selection, keyed merging, and Lodash's index-based merge.- The package ships native ESM, Node-compatible CommonJS, and TypeScript declarations without requiring Bun at runtime.
Installation
Install with Bun:
bun add @tanaab/mergeOr install with npm:
npm install @tanaab/mergeThe package supports Bun 1.3.10 or newer and Node.js 24 or newer.
Usage
import { merge, mergeArrays } from '@tanaab/merge';
const config = merge({ service: { host: 'localhost' } }, { service: { port: 8080 } });
// { service: { host: 'localhost', port: 8080 } }
const tags = mergeArrays(['stable'], ['preview'], 'concat');
// ['stable', 'preview']merge mutates and returns its target. Its default array strategy is ['merge:id', 'replace']:
existing target arrays containing plain objects merge by id; other arrays use Lodash's index-based merge.
replace preserves unmatched trailing entries; it does not replace the whole array.
See API.md for all public exports, parameters, return values, strategies, and mutation limits.
Stable releases update both latest and edge; prereleases update only edge.
Use @tanaab/merge@edge to follow the newest release, including prereleases.
Development
bun install --frozen-lockfile --ignore-scripts
bun run lint
bun run typecheck
bun run test
bun run docs:check
bun run test:packagetest:package requires Node and npm and tests an isolated installation of the built tarball.
Regenerate the API reference after public documentation changes with bun run docs.
Issues, Questions and Support
Use the issue queue to report bugs, request features, or ask project questions.
Changelog
See CHANGELOG.md and the GitHub releases for published changes.
Maintainers
Contributors
Made with contrib.rocks.
License
@tanaab/merge is licensed under the MIT License.
