Skip to content

Commit b77b0be

Browse files
authored
refactor(resolver): improve and expose details of CouldNotResolveError (denoland#30410)
Need this for deno-js-loader.
1 parent 4ade335 commit b77b0be

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

libs/resolver/graph.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use node_resolver::InNpmPackageChecker;
2525
use node_resolver::IsBuiltInNodeModuleChecker;
2626
use node_resolver::NpmPackageFolderResolver;
2727
use node_resolver::UrlOrPath;
28+
use node_resolver::errors::NodeJsErrorCoded;
2829
use url::Url;
2930

3031
use crate::DenoResolveError;
@@ -51,7 +52,7 @@ pub struct ResolveWithGraphError(pub Box<ResolveWithGraphErrorKind>);
5152
impl ResolveWithGraphError {
5253
pub fn maybe_specifier(&self) -> Option<Cow<'_, UrlOrPath>> {
5354
match self.as_kind() {
54-
ResolveWithGraphErrorKind::CouldNotResolve(err) => {
55+
ResolveWithGraphErrorKind::CouldNotResolveNpmNv(err) => {
5556
err.source.maybe_specifier()
5657
}
5758
ResolveWithGraphErrorKind::ResolveNpmReqRef(err) => {
@@ -85,7 +86,7 @@ impl ResolveWithGraphError {
8586
pub enum ResolveWithGraphErrorKind {
8687
#[error(transparent)]
8788
#[class(inherit)]
88-
CouldNotResolve(#[from] CouldNotResolveError),
89+
CouldNotResolveNpmNv(#[from] CouldNotResolveNpmNvError),
8990
#[error(transparent)]
9091
#[class(inherit)]
9192
ResolvePkgFolderFromDenoModule(
@@ -108,11 +109,17 @@ pub enum ResolveWithGraphErrorKind {
108109
#[derive(Debug, thiserror::Error, deno_error::JsError)]
109110
#[class(inherit)]
110111
#[error("Could not resolve '{reference}'")]
111-
pub struct CouldNotResolveError {
112-
reference: deno_semver::npm::NpmPackageNvReference,
112+
pub struct CouldNotResolveNpmNvError {
113+
pub reference: deno_semver::npm::NpmPackageNvReference,
113114
#[source]
114115
#[inherit]
115-
source: node_resolver::errors::PackageSubpathFromDenoModuleResolveError,
116+
pub source: node_resolver::errors::PackageSubpathFromDenoModuleResolveError,
117+
}
118+
119+
impl NodeJsErrorCoded for CouldNotResolveNpmNvError {
120+
fn code(&self) -> node_resolver::errors::NodeJsErrorCode {
121+
self.source.code()
122+
}
116123
}
117124

118125
impl FoundPackageJsonDepFlag {
@@ -359,7 +366,7 @@ impl<
359366
resolution_mode,
360367
resolution_kind,
361368
)
362-
.map_err(|source| CouldNotResolveError {
369+
.map_err(|source| CouldNotResolveNpmNvError {
363370
reference: nv_ref.clone(),
364371
source,
365372
})?

0 commit comments

Comments
 (0)