@empathyco/x-deep-merge
Version:
Utility for deep cloning objects.
61 lines (39 loc) • 1.47 kB
Markdown
# x-deep-merge
Utility for deep cloning objects.
### How to install
```
# or pnpm or yarn
npm install @empathyco/x-deep-merge
```
### How to use
[TypeScript Module Resolution Logic](https://www.typescriptlang.org/docs/handbook/module-resolution.html)
makes it quite easy. The `package.json` file contains `main` attribute that points to the generated
`dist/client.js` file and `typings` attribute that points to the generated `dist/client.d.ts` file.
You can also import this package as a module:
- Using `x-deep-merge` in a `TypeScript` file:
```ts
import { deepMerge } from '@empathyco/x-deep-merge'
const target = {}
const source1 = { a: 1 }
const source2 = { b: 2 }
deepMerge(target, source1, source2) // target = { a: 1, b: 2 }
```
- Another example
```ts
import { deepMerge } from '@empathyco/x-deep-merge'
const sources = [{ a: 1 }, { b: 2 }]
const mergedObject = deepMerge({}, ...sources) // mergedObject = { a: 1, b: 2 }
```
If you want to find out all the covered use cases, check the `tests` folder.
## Test
**x-deep-merge** features are tested using [Vitest](https://vitest.dev/). You will find a
`__tests__` folder inside the `src` folder.
```
pnpm run test
```
### How to update the version
You can check if a new version has been published running
[pnpm outdated](https://pnpm.io/cli/outdated):
`pnpm outdated @empathyco/x-deep-merge`
And update it using [npm update](https://pnpm.io/cli/update):
`pnpm update @empathyco/x-deep-merge`