diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-02-15 11:30:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-15 11:30:54 -0500 |
commit | b34e751a5b2193e8ce65203386e00147c08a7a64 (patch) | |
tree | 47ad04c90e4df431396185b1e3d15fcd2623a973 /cli/tools | |
parent | c7535950b6de086fce741809728129c79288dee8 (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.rs | 3 | ||||
-rw-r--r-- | cli/tools/repl/session.rs | 6 | ||||
-rw-r--r-- | cli/tools/vendor/build.rs | 5 | ||||
-rw-r--r-- | cli/tools/vendor/import_map.rs | 7 | ||||
-rw-r--r-- | cli/tools/vendor/test.rs | 4 |
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( |