diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-07-23 20:22:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-24 00:22:24 +0000 |
commit | 52ababc4bf948904092cff54c2ab8b91f6b9b443 (patch) | |
tree | 77dc2fe4a9eb79ce893e1593822df4de1f564260 /cli/npm | |
parent | 445e05a39d005eab6f7d2f1f67a7ae2d7c85b1b3 (diff) |
fix(node): better detection for when to surface node resolution errors (#24653)
Diffstat (limited to 'cli/npm')
-rw-r--r-- | cli/npm/byonm.rs | 7 | ||||
-rw-r--r-- | cli/npm/managed/mod.rs | 4 | ||||
-rw-r--r-- | cli/npm/managed/resolvers/global.rs | 11 | ||||
-rw-r--r-- | cli/npm/managed/resolvers/local.rs | 10 |
4 files changed, 18 insertions, 14 deletions
diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index f776b79c1..d10bb6b2a 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -12,7 +12,8 @@ use deno_core::serde_json; use deno_package_json::PackageJsonDepValue; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::errors::PackageFolderResolveError; -use deno_runtime::deno_node::errors::PackageFolderResolveErrorKind; +use deno_runtime::deno_node::errors::PackageFolderResolveIoError; +use deno_runtime::deno_node::errors::PackageNotFoundError; use deno_runtime::deno_node::load_pkg_json; use deno_runtime::deno_node::NodePermissions; use deno_runtime::deno_node::NpmResolver; @@ -198,7 +199,7 @@ impl NpmResolver for ByonmCliNpmResolver { } Err( - PackageFolderResolveErrorKind::NotFoundPackage { + PackageNotFoundError { package_name: name.to_string(), referrer: referrer.clone(), referrer_extra: None, @@ -209,7 +210,7 @@ impl NpmResolver for ByonmCliNpmResolver { let path = inner(&*self.fs, name, referrer)?; self.fs.realpath_sync(&path).map_err(|err| { - PackageFolderResolveErrorKind::Io { + PackageFolderResolveIoError { package_name: name.to_string(), referrer: referrer.clone(), source: err.into_io_error(), diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index a18ad4d7f..602733cab 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -21,7 +21,7 @@ use deno_npm::NpmResolutionPackage; use deno_npm::NpmSystemInfo; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::errors::PackageFolderResolveError; -use deno_runtime::deno_node::errors::PackageFolderResolveErrorKind; +use deno_runtime::deno_node::errors::PackageFolderResolveIoError; use deno_runtime::deno_node::NodePermissions; use deno_runtime::deno_node::NpmResolver; use deno_semver::package::PackageNv; @@ -549,7 +549,7 @@ impl NpmResolver for ManagedCliNpmResolver { .resolve_package_folder_from_package(name, referrer)?; let path = canonicalize_path_maybe_not_exists_with_fs(&path, self.fs.as_ref()) - .map_err(|err| PackageFolderResolveErrorKind::Io { + .map_err(|err| PackageFolderResolveIoError { package_name: name.to_string(), referrer: referrer.clone(), source: err, diff --git a/cli/npm/managed/resolvers/global.rs b/cli/npm/managed/resolvers/global.rs index d16fe7cd0..e7a57fc23 100644 --- a/cli/npm/managed/resolvers/global.rs +++ b/cli/npm/managed/resolvers/global.rs @@ -15,7 +15,8 @@ use deno_npm::NpmPackageId; use deno_npm::NpmSystemInfo; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::errors::PackageFolderResolveError; -use deno_runtime::deno_node::errors::PackageFolderResolveErrorKind; +use deno_runtime::deno_node::errors::PackageNotFoundError; +use deno_runtime::deno_node::errors::ReferrerNotFoundError; use deno_runtime::deno_node::NodePermissions; use super::super::cache::NpmCache; @@ -84,7 +85,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { .resolve_package_folder_id_from_specifier(referrer) else { return Err( - PackageFolderResolveErrorKind::NotFoundReferrer { + ReferrerNotFoundError { referrer: referrer.clone(), referrer_extra: None, } @@ -98,7 +99,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { Ok(pkg) => match self.maybe_package_folder(&pkg.id) { Some(folder) => Ok(folder), None => Err( - PackageFolderResolveErrorKind::NotFoundPackage { + PackageNotFoundError { package_name: name.to_string(), referrer: referrer.clone(), referrer_extra: Some(format!( @@ -112,7 +113,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { }, Err(err) => match *err { PackageNotFoundFromReferrerError::Referrer(cache_folder_id) => Err( - PackageFolderResolveErrorKind::NotFoundReferrer { + ReferrerNotFoundError { referrer: referrer.clone(), referrer_extra: Some(cache_folder_id.to_string()), } @@ -122,7 +123,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { name, referrer: cache_folder_id_referrer, } => Err( - PackageFolderResolveErrorKind::NotFoundPackage { + PackageNotFoundError { package_name: name, referrer: referrer.clone(), referrer_extra: Some(cache_folder_id_referrer.to_string()), diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index 90a17b157..cda78548b 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -33,7 +33,9 @@ use deno_npm::NpmResolutionPackage; use deno_npm::NpmSystemInfo; use deno_runtime::deno_fs; use deno_runtime::deno_node::errors::PackageFolderResolveError; -use deno_runtime::deno_node::errors::PackageFolderResolveErrorKind; +use deno_runtime::deno_node::errors::PackageFolderResolveIoError; +use deno_runtime::deno_node::errors::PackageNotFoundError; +use deno_runtime::deno_node::errors::ReferrerNotFoundError; use deno_runtime::deno_node::NodePermissions; use deno_semver::package::PackageNv; use serde::Deserialize; @@ -185,14 +187,14 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { ) -> Result<PathBuf, PackageFolderResolveError> { let maybe_local_path = self .resolve_folder_for_specifier(referrer) - .map_err(|err| PackageFolderResolveErrorKind::Io { + .map_err(|err| PackageFolderResolveIoError { package_name: name.to_string(), referrer: referrer.clone(), source: err, })?; let Some(local_path) = maybe_local_path else { return Err( - PackageFolderResolveErrorKind::NotFoundReferrer { + ReferrerNotFoundError { referrer: referrer.clone(), referrer_extra: None, } @@ -220,7 +222,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { } Err( - PackageFolderResolveErrorKind::NotFoundPackage { + PackageNotFoundError { package_name: name.to_string(), referrer: referrer.clone(), referrer_extra: None, |