summaryrefslogtreecommitdiff
path: root/cli/tools/repl/session.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/repl/session.rs')
-rw-r--r--cli/tools/repl/session.rs15
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(())