mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
fix(check): properly surface dependency errors in types file of js file (#25860)
We weren't surfacing dependency errors in types files of js files.
This commit is contained in:
parent
5c40b47629
commit
8cdb309ffd
11 changed files with 34 additions and 17 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -1584,9 +1584,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_graph"
|
||||
version = "0.82.1"
|
||||
version = "0.82.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "78b63015c73aa203da206b5d35b4c1eaa23bc7fed37ab325da62d525a5524a04"
|
||||
checksum = "9328b62ffc7e806f1c92fd7a22e4ff3046fcb53f2d46e3e1297482b2c4c2bb9d"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
|
|
@ -68,7 +68,7 @@ deno_cache_dir = { workspace = true }
|
|||
deno_config = { version = "=0.35.0", features = ["workspace", "sync"] }
|
||||
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
|
||||
deno_doc = { version = "0.148.0", features = ["html", "syntect"] }
|
||||
deno_graph = { version = "=0.82.1" }
|
||||
deno_graph = { version = "=0.82.2" }
|
||||
deno_lint = { version = "=0.67.0", features = ["docs"] }
|
||||
deno_lockfile.workspace = true
|
||||
deno_npm = "=0.25.2"
|
||||
|
|
|
@ -55,7 +55,7 @@ use std::sync::Arc;
|
|||
#[derive(Clone, Copy)]
|
||||
pub struct GraphValidOptions {
|
||||
pub check_js: bool,
|
||||
pub follow_type_only: bool,
|
||||
pub kind: GraphKind,
|
||||
pub is_vendoring: bool,
|
||||
/// Whether to exit the process for lockfile errors.
|
||||
/// Otherwise, surfaces lockfile errors as errors.
|
||||
|
@ -84,7 +84,7 @@ pub fn graph_valid(
|
|||
roots.iter(),
|
||||
deno_graph::WalkOptions {
|
||||
check_js: options.check_js,
|
||||
follow_type_only: options.follow_type_only,
|
||||
kind: options.kind,
|
||||
follow_dynamic: options.is_vendoring,
|
||||
prefer_fast_check_graph: false,
|
||||
},
|
||||
|
@ -708,7 +708,11 @@ impl ModuleGraphBuilder {
|
|||
roots,
|
||||
GraphValidOptions {
|
||||
is_vendoring: false,
|
||||
follow_type_only: self.options.type_check_mode().is_true(),
|
||||
kind: if self.options.type_check_mode().is_true() {
|
||||
GraphKind::All
|
||||
} else {
|
||||
GraphKind::CodeOnly
|
||||
},
|
||||
check_js: self.options.check_js(),
|
||||
exit_lockfile_errors: true,
|
||||
},
|
||||
|
@ -928,7 +932,7 @@ pub fn has_graph_root_local_dependent_changed(
|
|||
std::iter::once(root),
|
||||
deno_graph::WalkOptions {
|
||||
follow_dynamic: true,
|
||||
follow_type_only: true,
|
||||
kind: GraphKind::All,
|
||||
prefer_fast_check_graph: true,
|
||||
check_js: true,
|
||||
},
|
||||
|
|
|
@ -275,7 +275,7 @@ impl LanguageServer {
|
|||
&roots,
|
||||
graph_util::GraphValidOptions {
|
||||
is_vendoring: false,
|
||||
follow_type_only: true,
|
||||
kind: GraphKind::All,
|
||||
check_js: false,
|
||||
exit_lockfile_errors: false,
|
||||
},
|
||||
|
|
|
@ -128,7 +128,7 @@ impl GraphDiagnosticsCollector {
|
|||
follow_dynamic: true,
|
||||
// search the entire graph and not just the fast check subset
|
||||
prefer_fast_check_graph: false,
|
||||
follow_type_only: true,
|
||||
kind: deno_graph::GraphKind::All,
|
||||
};
|
||||
let mut iter = graph.walk(graph.roots.iter(), options);
|
||||
while let Some((specifier, entry)) = iter.next() {
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"args": "check index.js",
|
||||
"output": "check.out",
|
||||
"exitCode": 1
|
||||
}
|
2
tests/specs/check/dts_importing_non_existent/check.out
Normal file
2
tests/specs/check/dts_importing_non_existent/check.out
Normal file
|
@ -0,0 +1,2 @@
|
|||
error: Module not found "file:///[WILDLINE]/test".
|
||||
at file:///[WILDLINE]/index.d.ts:1:22
|
1
tests/specs/check/dts_importing_non_existent/index.d.ts
vendored
Normal file
1
tests/specs/check/dts_importing_non_existent/index.d.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
export { Test } from "./test";
|
1
tests/specs/check/dts_importing_non_existent/index.js
Normal file
1
tests/specs/check/dts_importing_non_existent/index.js
Normal file
|
@ -0,0 +1 @@
|
|||
/// <reference types="./index.d.ts" />
|
|
@ -1,10 +1,13 @@
|
|||
{
|
||||
"steps": [{
|
||||
"args": "run main.ts",
|
||||
"output": "no_sloppy.out",
|
||||
"exitCode": 1
|
||||
}, {
|
||||
"args": "run --unstable-sloppy-imports main.ts",
|
||||
"output": "sloppy.out"
|
||||
}]
|
||||
"tests": {
|
||||
"no_sloppy": {
|
||||
"args": "run --check main.ts",
|
||||
"output": "no_sloppy.out",
|
||||
"exitCode": 1
|
||||
},
|
||||
"sloppy": {
|
||||
"args": "run --unstable-sloppy-imports --check main.ts",
|
||||
"output": "sloppy.out"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
Check file:///[WILDLINE]/main.ts
|
||||
[class A]
|
||||
[class B]
|
||||
[class C]
|
||||
|
|
Loading…
Reference in a new issue