From 670a5603ac9f8605299fdd503973bd57ac06108e Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 26 Jun 2026 22:45:15 -0230 Subject: [PATCH 1/3] 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 780cd82fdd..73e27ee6ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8181,6 +8181,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 5fc10a247c703985861a6cc2f7039cad04898950 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 26 Jun 2026 22:49:44 -0230 Subject: [PATCH 2/3] 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 5e323b3feee1e766ac8a434d95271802b35d3e52 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 26 Jun 2026 23:40:27 -0230 Subject: [PATCH 3/3] Silence knip false positive --- knip.config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/knip.config.ts b/knip.config.ts index caa51cc823..e1ad3950d7 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -21,6 +21,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 -- //