diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 1bdd8e6566..25890ba28d 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -1005,7 +1005,11 @@ impl } }; - ensure_not_jsr_non_jsr_remote_import(&specifier, &referrer)?; + // only verify this for an import and not import.meta.resolve + if !is_import_meta { + ensure_not_jsr_non_jsr_remote_import(&specifier, &referrer)?; + } + Ok(specifier) } diff --git a/tests/registry/jsr/@denotest/import-meta-resolve/1.0.0/mod.ts b/tests/registry/jsr/@denotest/import-meta-resolve/1.0.0/mod.ts new file mode 100644 index 0000000000..c738719fb5 --- /dev/null +++ b/tests/registry/jsr/@denotest/import-meta-resolve/1.0.0/mod.ts @@ -0,0 +1,3 @@ +export function resolve(value: string): string { + return import.meta.resolve(value); +} diff --git a/tests/registry/jsr/@denotest/import-meta-resolve/1.0.0_meta.json b/tests/registry/jsr/@denotest/import-meta-resolve/1.0.0_meta.json new file mode 100644 index 0000000000..631a18d0e5 --- /dev/null +++ b/tests/registry/jsr/@denotest/import-meta-resolve/1.0.0_meta.json @@ -0,0 +1,5 @@ +{ + "exports": { + ".": "./mod.ts" + } +} diff --git a/tests/registry/jsr/@denotest/import-meta-resolve/meta.json b/tests/registry/jsr/@denotest/import-meta-resolve/meta.json new file mode 100644 index 0000000000..02601e4d0d --- /dev/null +++ b/tests/registry/jsr/@denotest/import-meta-resolve/meta.json @@ -0,0 +1,5 @@ +{ + "versions": { + "1.0.0": {} + } +} diff --git a/tests/specs/jsr/import_meta_resolve_non_jsr_url/__test__.jsonc b/tests/specs/jsr/import_meta_resolve_non_jsr_url/__test__.jsonc new file mode 100644 index 0000000000..7444877103 --- /dev/null +++ b/tests/specs/jsr/import_meta_resolve_non_jsr_url/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --quiet main.ts", + "output": "main.out" +} diff --git a/tests/specs/jsr/import_meta_resolve_non_jsr_url/deno.json b/tests/specs/jsr/import_meta_resolve_non_jsr_url/deno.json new file mode 100644 index 0000000000..e7de703052 --- /dev/null +++ b/tests/specs/jsr/import_meta_resolve_non_jsr_url/deno.json @@ -0,0 +1,6 @@ +{ + "lock": false, + "imports": { + "mapped": "http://localhost:4545/example.ts" + } +} diff --git a/tests/specs/jsr/import_meta_resolve_non_jsr_url/main.out b/tests/specs/jsr/import_meta_resolve_non_jsr_url/main.out new file mode 100644 index 0000000000..17be8bef04 --- /dev/null +++ b/tests/specs/jsr/import_meta_resolve_non_jsr_url/main.out @@ -0,0 +1 @@ +http://localhost:4545/example.ts diff --git a/tests/specs/jsr/import_meta_resolve_non_jsr_url/main.ts b/tests/specs/jsr/import_meta_resolve_non_jsr_url/main.ts new file mode 100644 index 0000000000..d28e356dbf --- /dev/null +++ b/tests/specs/jsr/import_meta_resolve_non_jsr_url/main.ts @@ -0,0 +1,3 @@ +import { resolve } from "jsr:@denotest/import-meta-resolve"; + +console.log(resolve("mapped"));