mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
fix: show referrer for Wasm module dependency errors (#28653)
This commit is contained in:
parent
a0b658cd0f
commit
8ab7d2b4ea
8 changed files with 28 additions and 3 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -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",
|
||||
|
|
|
@ -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"] }
|
||||
|
|
|
@ -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, .. },
|
||||
|
|
5
tests/specs/run/error_bad_wasm_import/__test__.jsonc
Normal file
5
tests/specs/run/error_bad_wasm_import/__test__.jsonc
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"args": "run main.js",
|
||||
"exitCode": 1,
|
||||
"output": "main.out"
|
||||
}
|
3
tests/specs/run/error_bad_wasm_import/main.js
Normal file
3
tests/specs/run/error_bad_wasm_import/main.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
import { getValue } from "./toolkit.wasm";
|
||||
|
||||
console.log(getValue());
|
2
tests/specs/run/error_bad_wasm_import/main.out
Normal file
2
tests/specs/run/error_bad_wasm_import/main.out
Normal file
|
@ -0,0 +1,2 @@
|
|||
error: Relative import path "env" not prefixed with / or ./ or ../
|
||||
at file:///[WILDLINE]/toolkit.wasm:1:65
|
BIN
tests/specs/run/error_bad_wasm_import/toolkit.wasm
Normal file
BIN
tests/specs/run/error_bad_wasm_import/toolkit.wasm
Normal file
Binary file not shown.
7
tests/specs/run/error_bad_wasm_import/toolkit.wat
Normal file
7
tests/specs/run/error_bad_wasm_import/toolkit.wat
Normal 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
|
||||
)
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue