refactor(resolver): improve and expose details of CouldNotResolveError (#30410)
Some checks are pending
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions

Need this for deno-js-loader.
This commit is contained in:
David Sherret 2025-08-14 16:31:39 -04:00 committed by GitHub
parent 4ade335fc8
commit b77b0be068
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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<ResolveWithGraphErrorKind>);
impl ResolveWithGraphError {
pub fn maybe_specifier(&self) -> Option<Cow<'_, UrlOrPath>> {
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,
})?