diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-07-09 12:15:03 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-09 12:15:03 -0400 |
commit | 839caf6fafdf9ca1cdec6cd9cef38296be41145f (patch) | |
tree | 691dba21b45e9c5640275304308aa5d8a5d4a7ba /cli/npm/managed/mod.rs | |
parent | 07613a6bf26d9112d47fda9e502425395bd78105 (diff) |
refactor: use concrete error types for node resolution (#24470)
This will help clean up some of the code in the CLI because we'll be
able to tell how the resolution failed (not part of this PR).
Diffstat (limited to 'cli/npm/managed/mod.rs')
-rw-r--r-- | cli/npm/managed/mod.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 467703b05..6022396d6 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -20,6 +20,8 @@ use deno_npm::NpmPackageId; 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::NodePermissions; use deno_runtime::deno_node::NpmResolver; use deno_semver::package::PackageNv; @@ -522,12 +524,17 @@ impl NpmResolver for ManagedCliNpmResolver { &self, name: &str, referrer: &ModuleSpecifier, - ) -> Result<PathBuf, AnyError> { + ) -> Result<PathBuf, PackageFolderResolveError> { let path = self .fs_resolver .resolve_package_folder_from_package(name, referrer)?; let path = - canonicalize_path_maybe_not_exists_with_fs(&path, self.fs.as_ref())?; + canonicalize_path_maybe_not_exists_with_fs(&path, self.fs.as_ref()) + .map_err(|err| PackageFolderResolveErrorKind::Io { + package_name: name.to_string(), + referrer: referrer.clone(), + source: err, + })?; log::debug!("Resolved {} from {} to {}", name, referrer, path.display()); Ok(path) } |