mirror of
https://github.com/denoland/deno.git
synced 2025-03-03 17:34:47 -05:00
fix(npm): disable npm specifiers in import.meta.resolve() (#16599)
This commit is contained in:
parent
8dc242f789
commit
06bd9e9e16
3 changed files with 15 additions and 2 deletions
2
cli/tests/testdata/run/import_meta/main.out
vendored
2
cli/tests/testdata/run/import_meta/main.out
vendored
|
@ -7,3 +7,5 @@ Resolving without a value from import map https://example.com/PASS-undefined
|
||||||
Resolving 1 from import map https://example.com/PASS-1
|
Resolving 1 from import map https://example.com/PASS-1
|
||||||
Resolving null from import map https://example.com/PASS-null
|
Resolving null from import map https://example.com/PASS-null
|
||||||
Resolving object from import map https://example.com/PASS-object
|
Resolving object from import map https://example.com/PASS-object
|
||||||
|
TypeError: "npm:" specifiers are currently not supported in import.meta.resolve()
|
||||||
|
at file:///[WILDCARD]testdata/run/import_meta/main.ts:36:15
|
||||||
|
|
5
cli/tests/testdata/run/import_meta/main.ts
vendored
5
cli/tests/testdata/run/import_meta/main.ts
vendored
|
@ -32,3 +32,8 @@ assertThrows(() => {
|
||||||
assertThrows(() => {
|
assertThrows(() => {
|
||||||
import.meta.resolve("://malformed/url?asdf");
|
import.meta.resolve("://malformed/url?asdf");
|
||||||
}, TypeError);
|
}, TypeError);
|
||||||
|
try {
|
||||||
|
import.meta.resolve("npm:cowsay");
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
|
|
@ -363,8 +363,14 @@ fn import_meta_resolve(
|
||||||
let module_map = module_map_rc.borrow();
|
let module_map = module_map_rc.borrow();
|
||||||
module_map.loader.clone()
|
module_map.loader.clone()
|
||||||
};
|
};
|
||||||
match loader.resolve(&specifier.to_rust_string_lossy(scope), &referrer, false)
|
let specifier_str = specifier.to_rust_string_lossy(scope);
|
||||||
{
|
|
||||||
|
if specifier_str.starts_with("npm:") {
|
||||||
|
throw_type_error(scope, "\"npm:\" specifiers are currently not supported in import.meta.resolve()");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
match loader.resolve(&specifier_str, &referrer, false) {
|
||||||
Ok(resolved) => {
|
Ok(resolved) => {
|
||||||
let resolved_val = serde_v8::to_v8(scope, resolved.as_str()).unwrap();
|
let resolved_val = serde_v8::to_v8(scope, resolved.as_str()).unwrap();
|
||||||
rv.set(resolved_val);
|
rv.set(resolved_val);
|
||||||
|
|
Loading…
Add table
Reference in a new issue