From 617eeabe8369d7bfca7951d1cd55ac58ede1f9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 18 Oct 2021 19:36:28 +0200 Subject: feat(unstable): Node CJS and ESM resolvers for compat mode (#12424) This commit adds CJS and ESM Node resolvers to the "--compat" mode. The functionality is spread across "cli/compat" module and Node compatibility layer in "deno_std/node"; this stems from the fact that ES module resolution can only be implemented in Rust as it needs to directly integrated with "deno_core"; however "deno_std/node" already provided CJS module resolution. Currently this resolution is only active when running a files using "deno run --compat --unstable ", and is not available in other subcommands, which will be changed in follow up commits. --- .../node_modules/imports_exports/import_export.js | 6 ++++++ .../node_modules/imports_exports/import_polyfill.js | 3 +++ .../node_modules/imports_exports/package.json | 17 +++++++++++++++++ .../node_modules/imports_exports/require_export.cjs | 6 ++++++ .../node_modules/imports_exports/require_polyfill.js | 3 +++ 5 files changed, 35 insertions(+) create mode 100644 cli/compat/testdata/conditions/node_modules/imports_exports/import_export.js create mode 100644 cli/compat/testdata/conditions/node_modules/imports_exports/import_polyfill.js create mode 100644 cli/compat/testdata/conditions/node_modules/imports_exports/package.json create mode 100644 cli/compat/testdata/conditions/node_modules/imports_exports/require_export.cjs create mode 100644 cli/compat/testdata/conditions/node_modules/imports_exports/require_polyfill.js (limited to 'cli/compat/testdata/conditions/node_modules') diff --git a/cli/compat/testdata/conditions/node_modules/imports_exports/import_export.js b/cli/compat/testdata/conditions/node_modules/imports_exports/import_export.js new file mode 100644 index 000000000..3ebd222ea --- /dev/null +++ b/cli/compat/testdata/conditions/node_modules/imports_exports/import_export.js @@ -0,0 +1,6 @@ +import dep from "#dep"; + +export default { + bar: "bar", + dep, +}; diff --git a/cli/compat/testdata/conditions/node_modules/imports_exports/import_polyfill.js b/cli/compat/testdata/conditions/node_modules/imports_exports/import_polyfill.js new file mode 100644 index 000000000..76716a3ef --- /dev/null +++ b/cli/compat/testdata/conditions/node_modules/imports_exports/import_polyfill.js @@ -0,0 +1,3 @@ +export default { + polyfill: "import", +}; diff --git a/cli/compat/testdata/conditions/node_modules/imports_exports/package.json b/cli/compat/testdata/conditions/node_modules/imports_exports/package.json new file mode 100644 index 000000000..5d26359db --- /dev/null +++ b/cli/compat/testdata/conditions/node_modules/imports_exports/package.json @@ -0,0 +1,17 @@ +{ + "version": "1.0.0", + "name": "imports_exports", + "main": "./require_export.cjs", + "imports": { + "#dep": { + "import": "./import_polyfill.js", + "require": "./require_polyfill.js" + } + }, + "exports": { + ".": { + "import": "./import_export.js", + "require": "./require_export.cjs" + } + } +} diff --git a/cli/compat/testdata/conditions/node_modules/imports_exports/require_export.cjs b/cli/compat/testdata/conditions/node_modules/imports_exports/require_export.cjs new file mode 100644 index 000000000..11648c0d7 --- /dev/null +++ b/cli/compat/testdata/conditions/node_modules/imports_exports/require_export.cjs @@ -0,0 +1,6 @@ +const dep = require("#dep"); + +module.exports = { + foo: "foo", + dep, +}; \ No newline at end of file diff --git a/cli/compat/testdata/conditions/node_modules/imports_exports/require_polyfill.js b/cli/compat/testdata/conditions/node_modules/imports_exports/require_polyfill.js new file mode 100644 index 000000000..1023fd65c --- /dev/null +++ b/cli/compat/testdata/conditions/node_modules/imports_exports/require_polyfill.js @@ -0,0 +1,3 @@ +module.exports = { + polyfill: "require", +}; -- cgit v1.2.3