diff options
Diffstat (limited to 'cli/tools/repl/session.rs')
-rw-r--r-- | cli/tools/repl/session.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs index a1b602b4b..f833fbf5d 100644 --- a/cli/tools/repl/session.rs +++ b/cli/tools/repl/session.rs @@ -123,7 +123,7 @@ pub struct TsEvaluateResponse { } pub struct ReplSession { - npm_resolver: Arc<CliNpmResolver>, + npm_resolver: Arc<dyn CliNpmResolver>, resolver: Arc<CliGraphResolver>, pub worker: MainWorker, session: LocalInspectorSession, @@ -136,7 +136,7 @@ pub struct ReplSession { impl ReplSession { pub async fn initialize( cli_options: &CliOptions, - npm_resolver: Arc<CliNpmResolver>, + npm_resolver: Arc<dyn CliNpmResolver>, resolver: Arc<CliGraphResolver>, mut worker: MainWorker, ) -> Result<Self, AnyError> { @@ -508,6 +508,10 @@ impl ReplSession { &mut self, program: &swc_ast::Program, ) -> Result<(), AnyError> { + let Some(npm_resolver) = self.npm_resolver.as_managed() else { + return Ok(()); // don't auto-install for byonm + }; + let mut collector = ImportCollector::new(); program.visit_with(&mut collector); @@ -531,14 +535,11 @@ impl ReplSession { let has_node_specifier = resolved_imports.iter().any(|url| url.scheme() == "node"); if !npm_imports.is_empty() || has_node_specifier { - self.npm_resolver.add_package_reqs(&npm_imports).await?; + npm_resolver.add_package_reqs(&npm_imports).await?; // prevent messages in the repl about @types/node not being cached if has_node_specifier { - self - .npm_resolver - .inject_synthetic_types_node_package() - .await?; + npm_resolver.inject_synthetic_types_node_package().await?; } } Ok(()) |