fix: show referrer for Wasm module dependency errors (#28653)

This commit is contained in:
David Sherret 2025-03-28 09:13:39 -04:00 committed by GitHub
parent f2299353a0
commit 1e65d21071
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 28 additions and 3 deletions

4
Cargo.lock generated
View file

@ -2016,9 +2016,9 @@ dependencies = [
[[package]]
name = "deno_graph"
version = "0.89.3"
version = "0.89.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdb78d1e8dcf31507d018472ae7d6d8c15cf704b0087b8c866b440aedbceb5ef"
checksum = "5d12e08a843ed1dbef68de3720092e67dcb958eae59ec2f26a459597c2c76be0"
dependencies = [
"async-trait",
"capacity_builder 0.5.0",

View file

@ -56,7 +56,7 @@ deno_core = { version = "0.341.0" }
deno_bench_util = { version = "0.191.0", path = "./bench_util" }
deno_config = { version = "=0.51.0", features = ["workspace"] }
deno_doc = "=0.169.1"
deno_graph = "=0.89.3"
deno_graph = "=0.89.4"
deno_lint = "=0.74.0"
deno_lockfile = "=0.25.0"
deno_media_type = { version = "=0.2.8", features = ["module_specifier"] }

View file

@ -6,6 +6,7 @@ use std::error::Error;
use std::path::PathBuf;
use std::sync::Arc;
use deno_ast::MediaType;
use deno_config::deno_json;
use deno_config::deno_json::CompilerOptionTypesDeserializeError;
use deno_config::deno_json::NodeModulesDirMode;
@ -1170,6 +1171,13 @@ fn get_resolution_error_bare_specifier(
}
fn get_import_prefix_missing_error(error: &ResolutionError) -> Option<&str> {
// not exact, but ok because this is just a hint
let media_type =
MediaType::from_specifier_and_headers(&error.range().specifier, None);
if media_type == MediaType::Wasm {
return None;
}
let mut maybe_specifier = None;
if let ResolutionError::InvalidSpecifier {
error: SpecifierError::ImportPrefixMissing { specifier, .. },

View file

@ -0,0 +1,5 @@
{
"args": "run main.js",
"exitCode": 1,
"output": "main.out"
}

View file

@ -0,0 +1,3 @@
import { getValue } from "./toolkit.wasm";
console.log(getValue());

View file

@ -0,0 +1,2 @@
error: Relative import path "env" not prefixed with / or ./ or ../
at file:///[WILDLINE]/toolkit.wasm:1:65

Binary file not shown.

View file

@ -0,0 +1,7 @@
(module
(import "env" "get_time_in_seconds" (func $get_time (result i32)))
(func (export "getValue") (result i32)
call $get_time
)
)