1
0
Fork 0
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:
David Sherret 2024-09-25 09:04:57 -04:00 committed by GitHub
parent 5c40b47629
commit 8cdb309ffd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 34 additions and 17 deletions

4
Cargo.lock generated
View file

@ -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",

View file

@ -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"

View file

@ -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,
},

View file

@ -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,
},

View file

@ -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() {

View file

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

View file

@ -0,0 +1,2 @@
error: Module not found "file:///[WILDLINE]/test".
at file:///[WILDLINE]/index.d.ts:1:22

View file

@ -0,0 +1 @@
export { Test } from "./test";

View file

@ -0,0 +1 @@
/// <reference types="./index.d.ts" />

View file

@ -1,10 +1,13 @@
{
"steps": [{
"args": "run main.ts",
"tests": {
"no_sloppy": {
"args": "run --check main.ts",
"output": "no_sloppy.out",
"exitCode": 1
}, {
"args": "run --unstable-sloppy-imports main.ts",
},
"sloppy": {
"args": "run --unstable-sloppy-imports --check main.ts",
"output": "sloppy.out"
}]
}
}
}

View file

@ -1,3 +1,4 @@
Check file:///[WILDLINE]/main.ts
[class A]
[class B]
[class C]