summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-09-25 09:04:57 -0400
committerGitHub <noreply@github.com>2024-09-25 09:04:57 -0400
commit8cdb309ffd6686b2f3c4a2126d927fd5770be34d (patch)
tree68dfbc0d13e94b9e18f45925d1d5492a7ca6e267
parent5c40b47629bc83b9120019b77b34ced5eaabcffe (diff)
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.
-rw-r--r--Cargo.lock4
-rw-r--r--cli/Cargo.toml2
-rw-r--r--cli/graph_util.rs12
-rw-r--r--cli/lsp/language_server.rs2
-rw-r--r--cli/tools/registry/graph.rs2
-rw-r--r--tests/specs/check/dts_importing_non_existent/__test__.jsonc5
-rw-r--r--tests/specs/check/dts_importing_non_existent/check.out2
-rw-r--r--tests/specs/check/dts_importing_non_existent/index.d.ts1
-rw-r--r--tests/specs/check/dts_importing_non_existent/index.js1
-rw-r--r--tests/specs/run/sloppy_imports/__test__.jsonc19
-rw-r--r--tests/specs/run/sloppy_imports/sloppy.out1
11 files changed, 34 insertions, 17 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 492cfa260..bec2ec12c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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",
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index fc3216a60..ec2243a81 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -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"
diff --git a/cli/graph_util.rs b/cli/graph_util.rs
index cd98c3824..1add83eb9 100644
--- a/cli/graph_util.rs
+++ b/cli/graph_util.rs
@@ -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,
},
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index a1cc5079d..85daa4e28 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -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,
},
diff --git a/cli/tools/registry/graph.rs b/cli/tools/registry/graph.rs
index d14e4cd84..184557e5d 100644
--- a/cli/tools/registry/graph.rs
+++ b/cli/tools/registry/graph.rs
@@ -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() {
diff --git a/tests/specs/check/dts_importing_non_existent/__test__.jsonc b/tests/specs/check/dts_importing_non_existent/__test__.jsonc
new file mode 100644
index 000000000..3775b7fb4
--- /dev/null
+++ b/tests/specs/check/dts_importing_non_existent/__test__.jsonc
@@ -0,0 +1,5 @@
+{
+ "args": "check index.js",
+ "output": "check.out",
+ "exitCode": 1
+}
diff --git a/tests/specs/check/dts_importing_non_existent/check.out b/tests/specs/check/dts_importing_non_existent/check.out
new file mode 100644
index 000000000..80ec9593b
--- /dev/null
+++ b/tests/specs/check/dts_importing_non_existent/check.out
@@ -0,0 +1,2 @@
+error: Module not found "file:///[WILDLINE]/test".
+ at file:///[WILDLINE]/index.d.ts:1:22
diff --git a/tests/specs/check/dts_importing_non_existent/index.d.ts b/tests/specs/check/dts_importing_non_existent/index.d.ts
new file mode 100644
index 000000000..4216ca3ed
--- /dev/null
+++ b/tests/specs/check/dts_importing_non_existent/index.d.ts
@@ -0,0 +1 @@
+export { Test } from "./test";
diff --git a/tests/specs/check/dts_importing_non_existent/index.js b/tests/specs/check/dts_importing_non_existent/index.js
new file mode 100644
index 000000000..4b2c5ecce
--- /dev/null
+++ b/tests/specs/check/dts_importing_non_existent/index.js
@@ -0,0 +1 @@
+/// <reference types="./index.d.ts" />
diff --git a/tests/specs/run/sloppy_imports/__test__.jsonc b/tests/specs/run/sloppy_imports/__test__.jsonc
index 79aaaba69..a992f390b 100644
--- a/tests/specs/run/sloppy_imports/__test__.jsonc
+++ b/tests/specs/run/sloppy_imports/__test__.jsonc
@@ -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"
+ }
+ }
}
diff --git a/tests/specs/run/sloppy_imports/sloppy.out b/tests/specs/run/sloppy_imports/sloppy.out
index 170a4bb16..2cc57b6fc 100644
--- a/tests/specs/run/sloppy_imports/sloppy.out
+++ b/tests/specs/run/sloppy_imports/sloppy.out
@@ -1,3 +1,4 @@
+Check file:///[WILDLINE]/main.ts
[class A]
[class B]
[class C]