mirror of
https://github.com/denoland/deno.git
synced 2025-09-26 12:19:12 +00:00
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
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:
parent
4ade335fc8
commit
b77b0be068
1 changed files with 13 additions and 6 deletions
|
@ -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,
|
||||
})?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue