diff options
13 files changed, 67 insertions, 1 deletions
diff --git a/ext/node_resolver/analyze.rs b/ext/node_resolver/analyze.rs index aea33e29a..deb56d064 100644 --- a/ext/node_resolver/analyze.rs +++ b/ext/node_resolver/analyze.rs @@ -196,7 +196,7 @@ impl<TCjsCodeAnalyzer: CjsCodeAnalyzer, TNodeResolverEnv: NodeResolverEnv> &referrer, // FIXME(bartlomieju): check if these conditions are okay, probably // should be `deno-require`, because `deno` is already used in `esm_resolver.rs` - &["deno", "require", "default"], + &["deno", "node", "require", "default"], NodeResolutionMode::Execution, ); let reexport_specifier = match result { 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 diff --git a/tests/specs/node/cjs_reexport_node_condition/__test__.jsonc b/tests/specs/node/cjs_reexport_node_condition/__test__.jsonc new file mode 100644 index 000000000..030f2aa07 --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/__test__.jsonc @@ -0,0 +1,13 @@ +{ + "tempDir": true, + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "run -A ./main.ts", + "output": "from node\n" + } + ] +} diff --git a/tests/specs/node/cjs_reexport_node_condition/deno.json b/tests/specs/node/cjs_reexport_node_condition/deno.json new file mode 100644 index 000000000..fde86a1ef --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/deno.json @@ -0,0 +1,3 @@ +{ + "nodeModulesDir": "manual" +} diff --git a/tests/specs/node/cjs_reexport_node_condition/main.ts b/tests/specs/node/cjs_reexport_node_condition/main.ts new file mode 100644 index 000000000..09b8418a6 --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/main.ts @@ -0,0 +1,3 @@ +import { hello } from "@denotest/mjs-reexport-cjs"; + +console.log(hello); diff --git a/tests/specs/node/cjs_reexport_node_condition/package.json b/tests/specs/node/cjs_reexport_node_condition/package.json new file mode 100644 index 000000000..85ded5d50 --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@denotest/mjs-reexport-cjs": "*" + } +} |