From 64bf3c860a0df3e3f696c6257b5d8aecf1d19fa7 Mon Sep 17 00:00:00 2001 From: Nacho Aldama Date: Thu, 17 Aug 2023 18:47:49 +0200 Subject: [PATCH] fix: override peerDependencies in `pnpm.overrides` (#6955) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit сlose #6759 --- .changeset/hungry-sheep-approve.md | 6 +++++ .../src/createVersionsOverrider.ts | 1 + .../test/createVersionOverrider.test.ts | 23 ++++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 .changeset/hungry-sheep-approve.md diff --git a/.changeset/hungry-sheep-approve.md b/.changeset/hungry-sheep-approve.md new file mode 100644 index 0000000000..454de4facd --- /dev/null +++ b/.changeset/hungry-sheep-approve.md @@ -0,0 +1,6 @@ +--- +"@pnpm/hooks.read-package-hook": patch +"pnpm": patch +--- + +Override peerDependencies in `pnpm.overrides` [#6759](https://github.com/pnpm/pnpm/issues/6759). diff --git a/hooks/read-package-hook/src/createVersionsOverrider.ts b/hooks/read-package-hook/src/createVersionsOverrider.ts index 22f732a72a..6e0930ca70 100644 --- a/hooks/read-package-hook/src/createVersionsOverrider.ts +++ b/hooks/read-package-hook/src/createVersionsOverrider.ts @@ -81,6 +81,7 @@ function overrideDepsOfPkg ( if (manifest.dependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.dependencies, dir) if (manifest.optionalDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.optionalDependencies, dir) if (manifest.devDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.devDependencies, dir) + if (manifest.peerDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.peerDependencies, dir) } function overrideDeps ( diff --git a/hooks/read-package-hook/test/createVersionOverrider.test.ts b/hooks/read-package-hook/test/createVersionOverrider.test.ts index 7e4aa3f588..17592c64eb 100644 --- a/hooks/read-package-hook/test/createVersionOverrider.test.ts +++ b/hooks/read-package-hook/test/createVersionOverrider.test.ts @@ -382,4 +382,25 @@ test('createVersionsOverrider() matches intersections', () => { ).toStrictEqual({ dependencies: { foo: '>=1.2.4' }, }) -}) \ No newline at end of file +}) + +test('createVersionsOverrider() overrides peerDependencies of another dependency', () => { + const overrider = createVersionsOverrider({ + 'react-dom>react': '18.1.0', + }, process.cwd()) + expect( + overrider({ + name: 'react-dom', + version: '18.2.0', + peerDependencies: { + react: '18.2.0', + }, + }) + ).toStrictEqual({ + name: 'react-dom', + version: '18.2.0', + peerDependencies: { + react: '18.1.0', + }, + }) +})