diff --git a/libs/resolver/graph.rs b/libs/resolver/graph.rs index 91bc209827..9c4d8ad4ba 100644 --- a/libs/resolver/graph.rs +++ b/libs/resolver/graph.rs @@ -25,6 +25,7 @@ use node_resolver::InNpmPackageChecker; use node_resolver::IsBuiltInNodeModuleChecker; use node_resolver::NpmPackageFolderResolver; use node_resolver::UrlOrPath; +use node_resolver::errors::NodeJsErrorCoded; use url::Url; use crate::DenoResolveError; @@ -51,7 +52,7 @@ pub struct ResolveWithGraphError(pub Box); impl ResolveWithGraphError { pub fn maybe_specifier(&self) -> Option> { match self.as_kind() { - ResolveWithGraphErrorKind::CouldNotResolve(err) => { + ResolveWithGraphErrorKind::CouldNotResolveNpmNv(err) => { err.source.maybe_specifier() } ResolveWithGraphErrorKind::ResolveNpmReqRef(err) => { @@ -85,7 +86,7 @@ impl ResolveWithGraphError { pub enum ResolveWithGraphErrorKind { #[error(transparent)] #[class(inherit)] - CouldNotResolve(#[from] CouldNotResolveError), + CouldNotResolveNpmNv(#[from] CouldNotResolveNpmNvError), #[error(transparent)] #[class(inherit)] ResolvePkgFolderFromDenoModule( @@ -108,11 +109,17 @@ pub enum ResolveWithGraphErrorKind { #[derive(Debug, thiserror::Error, deno_error::JsError)] #[class(inherit)] #[error("Could not resolve '{reference}'")] -pub struct CouldNotResolveError { - reference: deno_semver::npm::NpmPackageNvReference, +pub struct CouldNotResolveNpmNvError { + pub reference: deno_semver::npm::NpmPackageNvReference, #[source] #[inherit] - source: node_resolver::errors::PackageSubpathFromDenoModuleResolveError, + pub source: node_resolver::errors::PackageSubpathFromDenoModuleResolveError, +} + +impl NodeJsErrorCoded for CouldNotResolveNpmNvError { + fn code(&self) -> node_resolver::errors::NodeJsErrorCode { + self.source.code() + } } impl FoundPackageJsonDepFlag { @@ -359,7 +366,7 @@ impl< resolution_mode, resolution_kind, ) - .map_err(|source| CouldNotResolveError { + .map_err(|source| CouldNotResolveNpmNvError { reference: nv_ref.clone(), source, })?