diff options
Diffstat (limited to 'cli/npm/resolvers/global.rs')
-rw-r--r-- | cli/npm/resolvers/global.rs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/cli/npm/resolvers/global.rs b/cli/npm/resolvers/global.rs index 10a17f690..ca84d7e8b 100644 --- a/cli/npm/resolvers/global.rs +++ b/cli/npm/resolvers/global.rs @@ -23,18 +23,18 @@ use crate::npm::resolution::NpmResolution; use crate::npm::resolvers::common::cache_packages; use crate::npm::NpmCache; -use super::common::ensure_registry_read_permission; use super::common::types_package_name; use super::common::NpmPackageFsResolver; +use super::common::RegistryReadPermissionChecker; /// Resolves packages from the global npm cache. #[derive(Debug)] pub struct GlobalNpmPackageResolver { - fs: Arc<dyn FileSystem>, cache: Arc<NpmCache>, resolution: Arc<NpmResolution>, registry_url: Url, system_info: NpmSystemInfo, + registry_read_permission_checker: RegistryReadPermissionChecker, } impl GlobalNpmPackageResolver { @@ -46,11 +46,14 @@ impl GlobalNpmPackageResolver { system_info: NpmSystemInfo, ) -> Self { Self { - fs, - cache, + cache: cache.clone(), resolution, - registry_url, + registry_url: registry_url.clone(), system_info, + registry_read_permission_checker: RegistryReadPermissionChecker::new( + fs, + cache.registry_folder(®istry_url), + ), } } @@ -156,7 +159,8 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { permissions: &dyn NodePermissions, path: &Path, ) -> Result<(), AnyError> { - let registry_path = self.cache.registry_folder(&self.registry_url); - ensure_registry_read_permission(&self.fs, permissions, ®istry_path, path) + self + .registry_read_permission_checker + .ensure_registry_read_permission(permissions, path) } } |