From 188498a3b284d8809b3dcd2c32b4e9d9155358cc Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 8 Apr 2026 14:44:20 +0100 Subject: [PATCH 1/4] feat: add `@75lb/deep-merge` to preferred manifest --- docs/modules/README.md | 1 + docs/modules/deep-merge.md | 15 +++++++++++++++ manifests/preferred.json | 8 +++++++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 docs/modules/deep-merge.md diff --git a/docs/modules/README.md b/docs/modules/README.md index 5c8dda3..006a8f7 100644 --- a/docs/modules/README.md +++ b/docs/modules/README.md @@ -12,6 +12,7 @@ ESLint plugin. ## List of modules +- [`@75lb/deep-merge`](./deep-merge.md) - [`@jsdevtools/ezspawn`](./ez-spawn.md) - [`axios`](./fetch.md) - [`bluebird`](./bluebird-q.md) diff --git a/docs/modules/deep-merge.md b/docs/modules/deep-merge.md new file mode 100644 index 0000000..5a59210 --- /dev/null +++ b/docs/modules/deep-merge.md @@ -0,0 +1,15 @@ +--- +description: Modern alternatives to the @75lb/deep-merge package for deep merging objects +--- + +# Replacements for `@75lb/deep-merge` + +## `defu` + +If you need to deep merge two objects, you can use [`defu`](https://github.com/unjs/defu): + +```ts +import { defu } from 'defu' + +const options = defu(object, ...defaults) +``` diff --git a/manifests/preferred.json b/manifests/preferred.json index c06ac71..ff309c0 100644 --- a/manifests/preferred.json +++ b/manifests/preferred.json @@ -1,5 +1,11 @@ { "mappings": { + "@75lb/deep-merge": { + "type": "module", + "moduleName": "@75lb/deep-merge", + "replacements": ["defu"], + "url": {"type": "e18e", "id": "deep-merge"} + }, "@iarna/toml": { "type": "module", "moduleName": "@iarna/toml", @@ -2967,7 +2973,7 @@ "defu": { "id": "defu", "type": "documented", - "url": {"type": "e18e", "id": "extend"}, + "url": {"type": "e18e", "id": "deep-merge"}, "replacementModule": "defu" }, "dequal": { From 3b4b73cdaeb263823d4a32a7415c04bd08ff4fa6 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 8 Apr 2026 17:21:57 +0100 Subject: [PATCH 2/4] update doc --- docs/modules/deep-merge.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/deep-merge.md b/docs/modules/deep-merge.md index 5a59210..6cb29d2 100644 --- a/docs/modules/deep-merge.md +++ b/docs/modules/deep-merge.md @@ -1,8 +1,8 @@ --- -description: Modern alternatives to the @75lb/deep-merge package for deep merging objects +description: Modern alternatives to packages for deep merging objects --- -# Replacements for `@75lb/deep-merge` +# Replacements to packages for deep merging objects ## `defu` From ab25fe3135f8d2aa33909e2703bc122d0c70cbc9 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Sat, 11 Apr 2026 13:44:03 +0100 Subject: [PATCH 3/4] Apply suggestion from @43081j --- docs/modules/deep-merge.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/deep-merge.md b/docs/modules/deep-merge.md index 6cb29d2..c0f6e3a 100644 --- a/docs/modules/deep-merge.md +++ b/docs/modules/deep-merge.md @@ -2,7 +2,7 @@ description: Modern alternatives to packages for deep merging objects --- -# Replacements to packages for deep merging objects +# Replacements for deep merge packages ## `defu` From e8342a6971b5db4024f0f4d0f3d030f62243f35c Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Sat, 11 Apr 2026 13:49:40 +0100 Subject: [PATCH 4/4] chore: add fastify --- docs/modules/deep-merge.md | 14 +++++++++++++- manifests/preferred.json | 8 +++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/modules/deep-merge.md b/docs/modules/deep-merge.md index c0f6e3a..9b62396 100644 --- a/docs/modules/deep-merge.md +++ b/docs/modules/deep-merge.md @@ -11,5 +11,17 @@ If you need to deep merge two objects, you can use [`defu`](https://github.com/u ```ts import { defu } from 'defu' -const options = defu(object, ...defaults) +const options = defu(object, defaults) +``` + +## `@fastify/deepmerge` + +The [`@fastify/deepmerge`](https://github.com/fastify/deepmerge) package is another fast and small alternative. + +It also offers more options for customizing the merge behavior than other libraries. + +```ts +import deepMerge from '@fastify/deepmerge' + +const options = deepMerge(object, defaults) ``` diff --git a/manifests/preferred.json b/manifests/preferred.json index ff309c0..66c1a3f 100644 --- a/manifests/preferred.json +++ b/manifests/preferred.json @@ -3,7 +3,7 @@ "@75lb/deep-merge": { "type": "module", "moduleName": "@75lb/deep-merge", - "replacements": ["defu"], + "replacements": ["defu", "@fastify/deepmerge"], "url": {"type": "e18e", "id": "deep-merge"} }, "@iarna/toml": { @@ -2745,6 +2745,12 @@ "url": {"type": "e18e", "id": "faker"}, "replacementModule": "@faker-js/faker" }, + "@fastify/deepmerge": { + "id": "@fastify/deepmerge", + "type": "documented", + "url": {"type": "e18e", "id": "deep-merge"}, + "replacementModule": "@fastify/deepmerge" + }, "@material/web": { "id": "@material/web", "type": "documented",