From 4384a126bb759580777e7a2678fe49bb015f2f69 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 29 Apr 2024 14:32:27 -0400 Subject: [PATCH] fix: handle specifying an import map in an ancestor dir of deno.json (#23602) * https://github.com/denoland/deno_config/pull/51 Closes https://github.com/denoland/deno/issues/21440 --- Cargo.lock | 4 ++-- cli/Cargo.toml | 2 +- cli/args/mod.rs | 2 +- tests/specs/run/import_map_parent_dir/__test__.jsonc | 9 +++++++++ tests/specs/run/import_map_parent_dir/import_map.json | 5 +++++ tests/specs/run/import_map_parent_dir/info.out | 7 +++++++ tests/specs/run/import_map_parent_dir/run.out | 1 + tests/specs/run/import_map_parent_dir/shared/models.ts | 1 + tests/specs/run/import_map_parent_dir/sub/deno.json | 3 +++ tests/specs/run/import_map_parent_dir/sub/main.ts | 1 + 10 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 tests/specs/run/import_map_parent_dir/__test__.jsonc create mode 100644 tests/specs/run/import_map_parent_dir/import_map.json create mode 100644 tests/specs/run/import_map_parent_dir/info.out create mode 100644 tests/specs/run/import_map_parent_dir/run.out create mode 100644 tests/specs/run/import_map_parent_dir/shared/models.ts create mode 100644 tests/specs/run/import_map_parent_dir/sub/deno.json create mode 100644 tests/specs/run/import_map_parent_dir/sub/main.ts diff --git a/Cargo.lock b/Cargo.lock index 3b8e4a715c525..1eea1d20ea001 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1272,9 +1272,9 @@ dependencies = [ [[package]] name = "deno_config" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc55559b6b4ebf190c75ad76a4204c792ac27e64e83e685fb5f4e4317bb94c5" +checksum = "f28ad258b58ade470cd745191eacee35562db3c967ffb26b4aa6f0f88f0882dd" dependencies = [ "anyhow", "glob", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 8559c3bbc9bea..605b1075ec4ba 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -65,7 +65,7 @@ winres.workspace = true [dependencies] deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] } deno_cache_dir = { workspace = true } -deno_config = "=0.16.1" +deno_config = "=0.16.2" deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } deno_doc = { version = "=0.128.1", features = ["html", "syntect"] } deno_emit = "=0.40.1" diff --git a/cli/args/mod.rs b/cli/args/mod.rs index bb0ef1abac892..1d8b06f49d201 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -943,7 +943,7 @@ impl CliOptions { &self, ) -> Result, AnyError> { match self.overrides.import_map_specifier.clone() { - Some(maybe_path) => Ok(maybe_path), + Some(maybe_url) => Ok(maybe_url), None => resolve_import_map_specifier( self.flags.import_map_path.as_deref(), self.maybe_config_file.as_ref(), diff --git a/tests/specs/run/import_map_parent_dir/__test__.jsonc b/tests/specs/run/import_map_parent_dir/__test__.jsonc new file mode 100644 index 0000000000000..f938448544568 --- /dev/null +++ b/tests/specs/run/import_map_parent_dir/__test__.jsonc @@ -0,0 +1,9 @@ +{ + "steps": [{ + "args": "info --config=sub/deno.json sub/main.ts", + "output": "info.out" + }, { + "args": "run --check sub/main.ts", + "output": "run.out" + }] +} diff --git a/tests/specs/run/import_map_parent_dir/import_map.json b/tests/specs/run/import_map_parent_dir/import_map.json new file mode 100644 index 0000000000000..ce2344d64daef --- /dev/null +++ b/tests/specs/run/import_map_parent_dir/import_map.json @@ -0,0 +1,5 @@ +{ + "imports": { + "~/shared/": "./shared/" + } +} diff --git a/tests/specs/run/import_map_parent_dir/info.out b/tests/specs/run/import_map_parent_dir/info.out new file mode 100644 index 0000000000000..05b9b317e370c --- /dev/null +++ b/tests/specs/run/import_map_parent_dir/info.out @@ -0,0 +1,7 @@ +local: [WILDLINE]main.ts +type: TypeScript +dependencies: 1 unique +size: [WILDLINE] + +file:///[WILDLINE]/sub/main.ts ([WILDLINE]) +└── file:///[WILDLINE]/shared/models.ts ([WILDLINE]) diff --git a/tests/specs/run/import_map_parent_dir/run.out b/tests/specs/run/import_map_parent_dir/run.out new file mode 100644 index 0000000000000..1830c3186d066 --- /dev/null +++ b/tests/specs/run/import_map_parent_dir/run.out @@ -0,0 +1 @@ +Check file:///[WILDLINE]/main.ts diff --git a/tests/specs/run/import_map_parent_dir/shared/models.ts b/tests/specs/run/import_map_parent_dir/shared/models.ts new file mode 100644 index 0000000000000..990777fbb3273 --- /dev/null +++ b/tests/specs/run/import_map_parent_dir/shared/models.ts @@ -0,0 +1 @@ +export class Model {} diff --git a/tests/specs/run/import_map_parent_dir/sub/deno.json b/tests/specs/run/import_map_parent_dir/sub/deno.json new file mode 100644 index 0000000000000..cfc6886ff7529 --- /dev/null +++ b/tests/specs/run/import_map_parent_dir/sub/deno.json @@ -0,0 +1,3 @@ +{ + "importMap": "../import_map.json" +} diff --git a/tests/specs/run/import_map_parent_dir/sub/main.ts b/tests/specs/run/import_map_parent_dir/sub/main.ts new file mode 100644 index 0000000000000..b189095c389f8 --- /dev/null +++ b/tests/specs/run/import_map_parent_dir/sub/main.ts @@ -0,0 +1 @@ +import "~/shared/models.ts";