From 5e1c25a5494177c81c2ad1ecbd6cfac965af85c4 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 26 Jun 2026 22:45:15 -0230 Subject: [PATCH 1/4] chore: make `react-dom` and `react-native` optional peer dependencies The package `@metamask/react-data-query` has `react-dom` and `react-native` as `peerDependencies` because they are peer dependencies of a dependency this package uses, `@tanstack/react-query`. This "forwarding" of peer dependencies is something we started doing in our own packages because it better highlights the legitimate requirements of the package (transitive peer dependencies tend to not get surfaced by package managers when they're not met, you have to dig for it). However, `@tanstack/react-query` has these two peer dependencies as _optional_, as they should be. We forgot to document them as optional. This resolves an unnecessary peer dependency warning in `metamask-extension`. --- packages/react-data-query/package.json | 8 ++++++++ yarn.lock | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/packages/react-data-query/package.json b/packages/react-data-query/package.json index 541ed93afd..42c0a83c64 100644 --- a/packages/react-data-query/package.json +++ b/packages/react-data-query/package.json @@ -73,6 +73,14 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-native": "*" }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + }, "engines": { "node": "^18.18 || >=20" } diff --git a/yarn.lock b/yarn.lock index 77b6f0ac49..07ade6e8d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8200,6 +8200,11 @@ __metadata: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true languageName: unknown linkType: soft From e174ae132ace4eb4a1b12d5ef9589dede79998d4 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 26 Jun 2026 22:49:44 -0230 Subject: [PATCH 2/4] Update changelog --- packages/react-data-query/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-data-query/CHANGELOG.md b/packages/react-data-query/CHANGELOG.md index 1477d77404..26b8a96fc2 100644 --- a/packages/react-data-query/CHANGELOG.md +++ b/packages/react-data-query/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bump `@metamask/utils` from `^11.9.0` to `^11.11.0` ([#9074](https://github.com/MetaMask/core/pull/9074)) +- Make `react-dom` and `react-native` peer dependencies optional ([#9295](https://github.com/MetaMask/core/pull/9295)) ## [0.2.1] From 9834cdcd84fac202409d03abace05808040668c3 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 26 Jun 2026 23:40:27 -0230 Subject: [PATCH 3/4] Silence knip false positive --- knip.config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/knip.config.ts b/knip.config.ts index 3e17d4ed3f..00e8e69af1 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -22,6 +22,10 @@ const config: KnipConfig = { // relative path that doesn't resolve inside this monorepo. ignoreUnresolved: [/^\.\.\/\.\.\/\.\.\/core\/Engine$/u], }, + 'packages/react-data-query': { + // Flagged due to knip bug, see https://github.com/webpro-nl/knip/issues/1823 + ignoreDependencies: ['react-dom', 'react-native'], + }, // -- Per-workspace `ignoreDependencies` snapshots -- // From 6bca409ead931a7ffd07550d6e68ead21206c3f6 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Mon, 29 Jun 2026 16:12:33 -0230 Subject: [PATCH 4/4] Remove workaround for knip bug, it's fixed in current version --- knip.config.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/knip.config.ts b/knip.config.ts index 00e8e69af1..3e17d4ed3f 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -22,10 +22,6 @@ const config: KnipConfig = { // relative path that doesn't resolve inside this monorepo. ignoreUnresolved: [/^\.\.\/\.\.\/\.\.\/core\/Engine$/u], }, - 'packages/react-data-query': { - // Flagged due to knip bug, see https://github.com/webpro-nl/knip/issues/1823 - ignoreDependencies: ['react-dom', 'react-native'], - }, // -- Per-workspace `ignoreDependencies` snapshots -- //