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]]
|
[[package]]
|
||||||
name = "deno_graph"
|
name = "deno_graph"
|
||||||
version = "0.82.1"
|
version = "0.82.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "78b63015c73aa203da206b5d35b4c1eaa23bc7fed37ab325da62d525a5524a04"
|
checksum = "9328b62ffc7e806f1c92fd7a22e4ff3046fcb53f2d46e3e1297482b2c4c2bb9d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|
|
@ -68,7 +68,7 @@ deno_cache_dir = { workspace = true }
|
||||||
deno_config = { version = "=0.35.0", features = ["workspace", "sync"] }
|
deno_config = { version = "=0.35.0", features = ["workspace", "sync"] }
|
||||||
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
|
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
|
||||||
deno_doc = { version = "0.148.0", features = ["html", "syntect"] }
|
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_lint = { version = "=0.67.0", features = ["docs"] }
|
||||||
deno_lockfile.workspace = true
|
deno_lockfile.workspace = true
|
||||||
deno_npm = "=0.25.2"
|
deno_npm = "=0.25.2"
|
||||||
|
|
|
@ -55,7 +55,7 @@ use std::sync::Arc;
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone, Copy)]
|
||||||
pub struct GraphValidOptions {
|
pub struct GraphValidOptions {
|
||||||
pub check_js: bool,
|
pub check_js: bool,
|
||||||
pub follow_type_only: bool,
|
pub kind: GraphKind,
|
||||||
pub is_vendoring: bool,
|
pub is_vendoring: bool,
|
||||||
/// Whether to exit the process for lockfile errors.
|
/// Whether to exit the process for lockfile errors.
|
||||||
/// Otherwise, surfaces lockfile errors as errors.
|
/// Otherwise, surfaces lockfile errors as errors.
|
||||||
|
@ -84,7 +84,7 @@ pub fn graph_valid(
|
||||||
roots.iter(),
|
roots.iter(),
|
||||||
deno_graph::WalkOptions {
|
deno_graph::WalkOptions {
|
||||||
check_js: options.check_js,
|
check_js: options.check_js,
|
||||||
follow_type_only: options.follow_type_only,
|
kind: options.kind,
|
||||||
follow_dynamic: options.is_vendoring,
|
follow_dynamic: options.is_vendoring,
|
||||||
prefer_fast_check_graph: false,
|
prefer_fast_check_graph: false,
|
||||||
},
|
},
|
||||||
|
@ -708,7 +708,11 @@ impl ModuleGraphBuilder {
|
||||||
roots,
|
roots,
|
||||||
GraphValidOptions {
|
GraphValidOptions {
|
||||||
is_vendoring: false,
|
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(),
|
check_js: self.options.check_js(),
|
||||||
exit_lockfile_errors: true,
|
exit_lockfile_errors: true,
|
||||||
},
|
},
|
||||||
|
@ -928,7 +932,7 @@ pub fn has_graph_root_local_dependent_changed(
|
||||||
std::iter::once(root),
|
std::iter::once(root),
|
||||||
deno_graph::WalkOptions {
|
deno_graph::WalkOptions {
|
||||||
follow_dynamic: true,
|
follow_dynamic: true,
|
||||||
follow_type_only: true,
|
kind: GraphKind::All,
|
||||||
prefer_fast_check_graph: true,
|
prefer_fast_check_graph: true,
|
||||||
check_js: true,
|
check_js: true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -275,7 +275,7 @@ impl LanguageServer {
|
||||||
&roots,
|
&roots,
|
||||||
graph_util::GraphValidOptions {
|
graph_util::GraphValidOptions {
|
||||||
is_vendoring: false,
|
is_vendoring: false,
|
||||||
follow_type_only: true,
|
kind: GraphKind::All,
|
||||||
check_js: false,
|
check_js: false,
|
||||||
exit_lockfile_errors: false,
|
exit_lockfile_errors: false,
|
||||||
},
|
},
|
||||||
|
|
|
@ -128,7 +128,7 @@ impl GraphDiagnosticsCollector {
|
||||||
follow_dynamic: true,
|
follow_dynamic: true,
|
||||||
// search the entire graph and not just the fast check subset
|
// search the entire graph and not just the fast check subset
|
||||||
prefer_fast_check_graph: false,
|
prefer_fast_check_graph: false,
|
||||||
follow_type_only: true,
|
kind: deno_graph::GraphKind::All,
|
||||||
};
|
};
|
||||||
let mut iter = graph.walk(graph.roots.iter(), options);
|
let mut iter = graph.walk(graph.roots.iter(), options);
|
||||||
while let Some((specifier, entry)) = iter.next() {
|
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": [{
|
"tests": {
|
||||||
"args": "run main.ts",
|
"no_sloppy": {
|
||||||
"output": "no_sloppy.out",
|
"args": "run --check main.ts",
|
||||||
"exitCode": 1
|
"output": "no_sloppy.out",
|
||||||
}, {
|
"exitCode": 1
|
||||||
"args": "run --unstable-sloppy-imports main.ts",
|
},
|
||||||
"output": "sloppy.out"
|
"sloppy": {
|
||||||
}]
|
"args": "run --unstable-sloppy-imports --check main.ts",
|
||||||
|
"output": "sloppy.out"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
Check file:///[WILDLINE]/main.ts
|
||||||
[class A]
|
[class A]
|
||||||
[class B]
|
[class B]
|
||||||
[class C]
|
[class C]
|
||||||
|
|
Loading…
Reference in a new issue