diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-07-17 14:00:44 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-17 14:00:44 -0400 |
commit | 7a9f7f34195d74fe60eb48381bc2a32db741ceb7 (patch) | |
tree | c10516eda55afebb75f98bbfecd1cc555891e3ce /cli/npm/resolvers/mod.rs | |
parent | 37241e9b1e2d16cd160d529e69c6a782fff8a8b4 (diff) |
fix(node): improve require esm error messages (#19853)
Part of #19842.
Closes #19583
Closes #16913
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( |