diff options
Diffstat (limited to 'cli/graph_util.rs')
-rw-r--r-- | cli/graph_util.rs | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/cli/graph_util.rs b/cli/graph_util.rs index e567bebb5..a4a5dcab1 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -171,7 +171,7 @@ pub fn graph_lock_or_exit(graph: &ModuleGraph, lockfile: &mut Lockfile) { pub struct ModuleGraphBuilder { options: Arc<CliOptions>, resolver: Arc<CliGraphResolver>, - npm_resolver: Arc<CliNpmResolver>, + npm_resolver: Arc<dyn CliNpmResolver>, parsed_source_cache: Arc<ParsedSourceCache>, lockfile: Option<Arc<Mutex<Lockfile>>>, maybe_file_watcher_reporter: Option<FileWatcherReporter>, @@ -186,7 +186,7 @@ impl ModuleGraphBuilder { pub fn new( options: Arc<CliOptions>, resolver: Arc<CliGraphResolver>, - npm_resolver: Arc<CliNpmResolver>, + npm_resolver: Arc<dyn CliNpmResolver>, parsed_source_cache: Arc<ParsedSourceCache>, lockfile: Option<Arc<Mutex<Lockfile>>>, maybe_file_watcher_reporter: Option<FileWatcherReporter>, @@ -245,11 +245,10 @@ impl ModuleGraphBuilder { ) .await?; - if graph.has_node_specifier && self.options.type_check_mode().is_true() { - self - .npm_resolver - .inject_synthetic_types_node_package() - .await?; + if let Some(npm_resolver) = self.npm_resolver.as_managed() { + if graph.has_node_specifier && self.options.type_check_mode().is_true() { + npm_resolver.inject_synthetic_types_node_package().await?; + } } Ok(graph) @@ -391,16 +390,18 @@ impl ModuleGraphBuilder { } } - // ensure that the top level package.json is installed if a - // specifier was matched in the package.json - self - .resolver - .top_level_package_json_install_if_necessary() - .await?; + if let Some(npm_resolver) = self.npm_resolver.as_managed() { + // ensure that the top level package.json is installed if a + // specifier was matched in the package.json + self + .resolver + .top_level_package_json_install_if_necessary() + .await?; - // resolve the dependencies of any pending dependencies - // that were inserted by building the graph - self.npm_resolver.resolve_pending().await?; + // resolve the dependencies of any pending dependencies + // that were inserted by building the graph + npm_resolver.resolve_pending().await?; + } Ok(()) } |