diff options
Diffstat (limited to 'cli/npm/resolvers/mod.rs')
-rw-r--r-- | cli/npm/resolvers/mod.rs | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/cli/npm/resolvers/mod.rs b/cli/npm/resolvers/mod.rs index 39fcba3fc..d46b6da6e 100644 --- a/cli/npm/resolvers/mod.rs +++ b/cli/npm/resolvers/mod.rs @@ -131,31 +131,35 @@ impl CliNpmResolver { pub fn resolve_package_folder_from_specifier( &self, specifier: &ModuleSpecifier, - ) -> Result<PathBuf, AnyError> { - let path = self + ) -> Result<Option<PathBuf>, AnyError> { + let Some(path) = self .fs_resolver - .resolve_package_folder_from_specifier(specifier)?; + .resolve_package_folder_from_specifier(specifier)? else { + return Ok(None); + }; log::debug!( "Resolved package folder of {} to {}", specifier, path.display() ); - Ok(path) + Ok(Some(path)) } /// Resolves the package nv from the provided specifier. pub fn resolve_package_id_from_specifier( &self, specifier: &ModuleSpecifier, - ) -> Result<NpmPackageId, AnyError> { - let cache_folder_id = self + ) -> Result<Option<NpmPackageId>, AnyError> { + let Some(cache_folder_id) = self .fs_resolver - .resolve_package_cache_folder_id_from_specifier(specifier)?; - Ok( + .resolve_package_cache_folder_id_from_specifier(specifier)? else { +return Ok(None); + }; + Ok(Some( self .resolution .resolve_pkg_id_from_pkg_cache_folder_id(&cache_folder_id)?, - ) + )) } /// Attempts to get the package size in bytes. @@ -268,7 +272,7 @@ impl NpmResolver for CliNpmResolver { fn resolve_package_folder_from_path( &self, path: &Path, - ) -> Result<PathBuf, AnyError> { + ) -> Result<Option<PathBuf>, AnyError> { let specifier = path_to_specifier(path)?; self.resolve_package_folder_from_specifier(&specifier) } @@ -291,7 +295,8 @@ impl NpmResolver for CliNpmResolver { fn in_npm_package(&self, specifier: &ModuleSpecifier) -> bool { self .resolve_package_folder_from_specifier(specifier) - .is_ok() + .map(|p| p.is_some()) + .unwrap_or(false) } fn ensure_read_permission( |