From 9be8dce0c7f8deaeff5523735e0867194ec04c59 Mon Sep 17 00:00:00 2001 From: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Date: Sat, 21 Sep 2024 16:10:38 -0700 Subject: fix(node): Include "node" condition during CJS re-export analysis (#25785) Fixes #25777. We were missing the "node" condition, so we were resolving to the wrong conditional export, causing our analysis to be incorrect. --- .../npm/@denotest/conditional-exports-node/1.0.0/bad.js | 3 +++ .../npm/@denotest/conditional-exports-node/1.0.0/good.cjs | 3 +++ .../npm/@denotest/conditional-exports-node/1.0.0/index.js | 3 +++ .../@denotest/conditional-exports-node/1.0.0/package.json | 13 +++++++++++++ .../@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js | 7 +++++++ .../registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js | 1 + .../registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs | 1 + .../npm/@denotest/mjs-reexport-cjs/1.0.0/package.json | 11 +++++++++++ 8 files changed, 42 insertions(+) create mode 100644 tests/registry/npm/@denotest/conditional-exports-node/1.0.0/bad.js create mode 100644 tests/registry/npm/@denotest/conditional-exports-node/1.0.0/good.cjs create mode 100644 tests/registry/npm/@denotest/conditional-exports-node/1.0.0/index.js create mode 100644 tests/registry/npm/@denotest/conditional-exports-node/1.0.0/package.json create mode 100644 tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js create mode 100644 tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js create mode 100644 tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs create mode 100644 tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/package.json (limited to 'tests/registry') diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/bad.js b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/bad.js new file mode 100644 index 000000000..e4f1bed50 --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/bad.js @@ -0,0 +1,3 @@ +module.exports = { + hello: "bad" +}; \ No newline at end of file diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/good.cjs b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/good.cjs new file mode 100644 index 000000000..f99f7732a --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/good.cjs @@ -0,0 +1,3 @@ +module.exports = { + hello: "from node" +}; \ No newline at end of file diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/index.js b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/index.js new file mode 100644 index 000000000..a440bdc74 --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/index.js @@ -0,0 +1,3 @@ +export default { + hello: "default export" +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/package.json b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/package.json new file mode 100644 index 000000000..00a43c78f --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/package.json @@ -0,0 +1,13 @@ +{ + "name": "@denotest/conditional-exports", + "version": "1.0.0", + "type": "module", + "exports": { + ".": { + "node": "./good.cjs", + "require": "./bad.js", + "default": "./index.js" + }, + "./*": "./*" + } +} diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js new file mode 100644 index 000000000..1d1499e2c --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js @@ -0,0 +1,7 @@ +Object.defineProperty(exports, '__esModule', { value: true }); + +const pkg = require("@denotest/conditional-exports-node"); + +Object.keys(pkg).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = pkg[k]; +}); \ No newline at end of file diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js new file mode 100644 index 000000000..9f407c0b1 --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js @@ -0,0 +1 @@ +module.exports = require('./dist/package.cjs.js') \ No newline at end of file diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs new file mode 100644 index 000000000..3767e9fcd --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs @@ -0,0 +1 @@ +export * from "./index.js"; \ No newline at end of file diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/package.json b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/package.json new file mode 100644 index 000000000..9a3ef3c84 --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/package.json @@ -0,0 +1,11 @@ +{ + "name": "@denotest/mjs-reexport-cjs", + "version": "1.0.0", + "dependencies": { + "@denotest/conditional-exports-node": "*" + }, + "exports": { + "node": "./index.mjs", + "default": "./index.js" + } +} \ No newline at end of file -- cgit v1.2.3