From b34e751a5b2193e8ce65203386e00147c08a7a64 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 15 Feb 2023 11:30:54 -0500 Subject: 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 --- cli/tools/vendor/build.rs | 5 ++--- cli/tools/vendor/import_map.rs | 7 ++++++- cli/tools/vendor/test.rs | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'cli/tools/vendor') 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( -- cgit v1.2.3