summaryrefslogtreecommitdiff
path: root/cli/factory.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/factory.rs')
-rw-r--r--cli/factory.rs17
1 files changed, 10 insertions, 7 deletions
diff --git a/cli/factory.rs b/cli/factory.rs
index 6acf248a8..c56f64139 100644
--- a/cli/factory.rs
+++ b/cli/factory.rs
@@ -32,6 +32,7 @@ use crate::node::CliNodeCodeTranslator;
use crate::npm::create_npm_fs_resolver;
use crate::npm::CliNpmRegistryApi;
use crate::npm::CliNpmResolver;
+use crate::npm::ManagedCliNpmResolver;
use crate::npm::NpmCache;
use crate::npm::NpmCacheDir;
use crate::npm::NpmPackageFsResolver;
@@ -158,7 +159,7 @@ struct CliFactoryServices {
node_resolver: Deferred<Arc<NodeResolver>>,
npm_api: Deferred<Arc<CliNpmRegistryApi>>,
npm_cache: Deferred<Arc<NpmCache>>,
- npm_resolver: Deferred<Arc<CliNpmResolver>>,
+ npm_resolver: Deferred<Arc<dyn CliNpmResolver>>,
npm_resolution: Deferred<Arc<NpmResolution>>,
package_json_deps_provider: Deferred<Arc<PackageJsonDepsProvider>>,
package_json_deps_installer: Deferred<Arc<PackageJsonDepsInstaller>>,
@@ -334,7 +335,9 @@ impl CliFactory {
.await
}
- pub async fn npm_resolver(&self) -> Result<&Arc<CliNpmResolver>, AnyError> {
+ pub async fn npm_resolver(
+ &self,
+ ) -> Result<&Arc<dyn CliNpmResolver>, AnyError> {
self
.services
.npm_resolver
@@ -350,12 +353,12 @@ impl CliFactory {
self.options.node_modules_dir_path(),
self.options.npm_system_info(),
);
- Ok(Arc::new(CliNpmResolver::new(
+ Ok(Arc::new(ManagedCliNpmResolver::new(
fs.clone(),
npm_resolution.clone(),
npm_fs_resolver,
self.maybe_lockfile().as_ref().cloned(),
- )))
+ )) as Arc<dyn CliNpmResolver>)
})
.await
}
@@ -491,7 +494,7 @@ impl CliFactory {
.get_or_try_init_async(async {
Ok(Arc::new(NodeResolver::new(
self.fs().clone(),
- self.npm_resolver().await?.clone(),
+ self.npm_resolver().await?.clone().into_npm_resolver(),
)))
})
.await
@@ -514,7 +517,7 @@ impl CliFactory {
cjs_esm_analyzer,
self.fs().clone(),
self.node_resolver().await?.clone(),
- self.npm_resolver().await?.clone(),
+ self.npm_resolver().await?.clone().into_npm_resolver(),
)))
})
.await
@@ -613,7 +616,7 @@ impl CliFactory {
self.npm_api()?,
self.npm_cache()?,
self.npm_resolution().await?,
- self.npm_resolver().await?,
+ self.npm_resolver().await?.as_ref(),
self.options.npm_system_info(),
self.package_json_deps_provider(),
))