From f77c5701f774b5f0ba548fb1e0eb53dfd304f440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 28 Oct 2021 10:11:38 +0200 Subject: feat(compat): integrate import map and classic resolutions in ESM resolution (#12549) This commit integrates import map and "classic" resolutions in the "--compat" mode when using ES modules; in effect "http:", "https:" and "blob:" imports now work in compat mode. The algorithm works as follows: 1. If there's an import map, try to resolve using it and if succeeded return the specifier 2. Try to resolve using "Node ESM resolution", and if succeeded return the specifier 3. Fall back to regular ESM resolution --- cli/tests/integration/compat_tests.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'cli/tests/integration') diff --git a/cli/tests/integration/compat_tests.rs b/cli/tests/integration/compat_tests.rs index 2886056ec..81d2985b3 100644 --- a/cli/tests/integration/compat_tests.rs +++ b/cli/tests/integration/compat_tests.rs @@ -18,6 +18,11 @@ itest!(node_prefix_fs_promises { output: "compat/fs_promises.out", }); +itest!(compat_with_import_map_and_https_imports { + args: "run --quiet --compat --unstable -A --import-map=compat/import_map.json compat/import_map_https_imports.mjs", + output: "compat/import_map_https_imports.out", +}); + #[test] fn globals_in_repl() { let (out, _err) = util::run_and_collect_output_with_args( -- cgit v1.2.3