diff options
Diffstat (limited to 'cli/npm/resolvers/global.rs')
-rw-r--r-- | cli/npm/resolvers/global.rs | 43 |
1 files changed, 17 insertions, 26 deletions
diff --git a/cli/npm/resolvers/global.rs b/cli/npm/resolvers/global.rs index 810548e98..66935380f 100644 --- a/cli/npm/resolvers/global.rs +++ b/cli/npm/resolvers/global.rs @@ -4,6 +4,7 @@ use std::path::Path; use std::path::PathBuf; +use std::sync::Arc; use async_trait::async_trait; use deno_ast::ModuleSpecifier; @@ -25,18 +26,18 @@ use super::common::types_package_name; use super::common::NpmPackageFsResolver; /// Resolves packages from the global npm cache. -#[derive(Debug, Clone)] +#[derive(Debug)] pub struct GlobalNpmPackageResolver { - cache: NpmCache, - resolution: NpmResolution, + cache: Arc<NpmCache>, + resolution: Arc<NpmResolution>, registry_url: Url, } impl GlobalNpmPackageResolver { pub fn new( - cache: NpmCache, + cache: Arc<NpmCache>, registry_url: Url, - resolution: NpmResolution, + resolution: Arc<NpmResolution>, ) -> Self { Self { cache, @@ -45,16 +46,6 @@ impl GlobalNpmPackageResolver { } } - fn package_folder(&self, id: &NpmPackageId) -> PathBuf { - let folder_id = self - .resolution - .resolve_package_cache_folder_id_from_id(id) - .unwrap(); - self - .cache - .package_folder_for_id(&folder_id, &self.registry_url) - } - fn resolve_types_package( &self, package_name: &str, @@ -77,11 +68,16 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { None } - fn resolve_package_folder_from_deno_module( - &self, - id: &NpmPackageId, - ) -> Result<PathBuf, AnyError> { - Ok(self.package_folder(id)) + fn package_folder(&self, id: &NpmPackageId) -> Result<PathBuf, AnyError> { + let folder_id = self + .resolution + .resolve_package_cache_folder_id_from_id(id) + .unwrap(); + Ok( + self + .cache + .package_folder_for_id(&folder_id, &self.registry_url), + ) } fn resolve_package_folder_from_package( @@ -106,7 +102,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { .resolution .resolve_package_from_package(name, &referrer_pkg_id)? }; - Ok(self.package_folder(&pkg.pkg_id)) + self.package_folder(&pkg.pkg_id) } fn resolve_package_folder_from_specifier( @@ -124,11 +120,6 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { ) } - fn package_size(&self, id: &NpmPackageId) -> Result<u64, AnyError> { - let package_folder = self.package_folder(id); - Ok(crate::util::fs::dir_size(&package_folder)?) - } - async fn cache_packages(&self) -> Result<(), AnyError> { cache_packages_in_resolver(self).await } |