summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-02-15 11:30:54 -0500
committerGitHub <noreply@github.com>2023-02-15 11:30:54 -0500
commitb34e751a5b2193e8ce65203386e00147c08a7a64 (patch)
tree47ad04c90e4df431396185b1e3d15fcd2623a973 /cli/tools
parentc7535950b6de086fce741809728129c79288dee8 (diff)
refactor: make resolver required (#17783)
Makes the resolver required and prints a warning when vendoring and a dynamic import can't be resolved. Closes #16522
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/info.rs3
-rw-r--r--cli/tools/repl/session.rs6
-rw-r--r--cli/tools/vendor/build.rs5
-rw-r--r--cli/tools/vendor/import_map.rs7
-rw-r--r--cli/tools/vendor/test.rs4
5 files changed, 15 insertions, 10 deletions
diff --git a/cli/tools/info.rs b/cli/tools/info.rs
index 1e09d58cb..317befcee 100644
--- a/cli/tools/info.rs
+++ b/cli/tools/info.rs
@@ -618,7 +618,8 @@ impl<'a> GraphDisplayContext<'a> {
ModuleGraphError::UnsupportedMediaType { .. } => {
self.build_error_msg(specifier, "(unsupported)")
}
- ModuleGraphError::Missing(_, _) => {
+ ModuleGraphError::Missing(_, _)
+ | ModuleGraphError::MissingDynamic(_, _) => {
self.build_error_msg(specifier, "(missing)")
}
}
diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs
index 18b40a1b9..843e985e6 100644
--- a/cli/tools/repl/session.rs
+++ b/cli/tools/repl/session.rs
@@ -444,9 +444,9 @@ impl ReplSession {
.flat_map(|i| {
self
.proc_state
- .maybe_resolver
- .as_ref()
- .and_then(|resolver| resolver.resolve(i, &self.referrer).ok())
+ .resolver
+ .resolve(i, &self.referrer)
+ .ok()
.or_else(|| ModuleSpecifier::parse(i).ok())
})
.collect::<Vec<_>>();
diff --git a/cli/tools/vendor/build.rs b/cli/tools/vendor/build.rs
index f3cc01444..89130f391 100644
--- a/cli/tools/vendor/build.rs
+++ b/cli/tools/vendor/build.rs
@@ -82,10 +82,9 @@ pub fn build(
graph_util::graph_valid(
&graph,
&graph.roots,
- deno_graph::WalkOptions {
- // surface all errors
+ graph_util::GraphValidOptions {
+ is_vendoring: true,
check_js: true,
- follow_dynamic: true,
follow_type_only: true,
},
)?;
diff --git a/cli/tools/vendor/import_map.rs b/cli/tools/vendor/import_map.rs
index 753ac52e5..3d2c1efd9 100644
--- a/cli/tools/vendor/import_map.rs
+++ b/cli/tools/vendor/import_map.rs
@@ -290,7 +290,12 @@ fn handle_dep_specifier(
referrer: &ModuleSpecifier,
mappings: &Mappings,
) {
- let specifier = graph.resolve(unresolved_specifier);
+ let specifier = match graph.get(unresolved_specifier) {
+ Some(module) => module.specifier.clone(),
+ // Ignore when None. The graph was previous validated so this is a
+ // dynamic import that was missing and is ignored for vendoring
+ None => return,
+ };
// check if it's referencing a remote module
if is_remote_specifier(&specifier) {
handle_remote_dep_specifier(
diff --git a/cli/tools/vendor/test.rs b/cli/tools/vendor/test.rs
index e5713a54c..31df151f2 100644
--- a/cli/tools/vendor/test.rs
+++ b/cli/tools/vendor/test.rs
@@ -20,7 +20,7 @@ use deno_graph::ModuleGraph;
use import_map::ImportMap;
use crate::cache::ParsedSourceCache;
-use crate::resolver::CliResolver;
+use crate::resolver::CliGraphResolver;
use super::build::VendorEnvironment;
@@ -261,7 +261,7 @@ async fn build_test_graph(
analyzer: &dyn deno_graph::ModuleAnalyzer,
) -> ModuleGraph {
let resolver =
- original_import_map.map(|m| CliResolver::with_import_map(Arc::new(m)));
+ original_import_map.map(|m| CliGraphResolver::new(None, Some(Arc::new(m))));
let mut graph = ModuleGraph::default();
graph
.build(