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::IsBuiltInNodeModuleChecker;
|
||||||
use node_resolver::NpmPackageFolderResolver;
|
use node_resolver::NpmPackageFolderResolver;
|
||||||
use node_resolver::UrlOrPath;
|
use node_resolver::UrlOrPath;
|
||||||
|
use node_resolver::errors::NodeJsErrorCoded;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use crate::DenoResolveError;
|
use crate::DenoResolveError;
|
||||||
|
@ -51,7 +52,7 @@ pub struct ResolveWithGraphError(pub Box<ResolveWithGraphErrorKind>);
|
||||||
impl ResolveWithGraphError {
|
impl ResolveWithGraphError {
|
||||||
pub fn maybe_specifier(&self) -> Option<Cow<'_, UrlOrPath>> {
|
pub fn maybe_specifier(&self) -> Option<Cow<'_, UrlOrPath>> {
|
||||||
match self.as_kind() {
|
match self.as_kind() {
|
||||||
ResolveWithGraphErrorKind::CouldNotResolve(err) => {
|
ResolveWithGraphErrorKind::CouldNotResolveNpmNv(err) => {
|
||||||
err.source.maybe_specifier()
|
err.source.maybe_specifier()
|
||||||
}
|
}
|
||||||
ResolveWithGraphErrorKind::ResolveNpmReqRef(err) => {
|
ResolveWithGraphErrorKind::ResolveNpmReqRef(err) => {
|
||||||
|
@ -85,7 +86,7 @@ impl ResolveWithGraphError {
|
||||||
pub enum ResolveWithGraphErrorKind {
|
pub enum ResolveWithGraphErrorKind {
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
#[class(inherit)]
|
#[class(inherit)]
|
||||||
CouldNotResolve(#[from] CouldNotResolveError),
|
CouldNotResolveNpmNv(#[from] CouldNotResolveNpmNvError),
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
#[class(inherit)]
|
#[class(inherit)]
|
||||||
ResolvePkgFolderFromDenoModule(
|
ResolvePkgFolderFromDenoModule(
|
||||||
|
@ -108,11 +109,17 @@ pub enum ResolveWithGraphErrorKind {
|
||||||
#[derive(Debug, thiserror::Error, deno_error::JsError)]
|
#[derive(Debug, thiserror::Error, deno_error::JsError)]
|
||||||
#[class(inherit)]
|
#[class(inherit)]
|
||||||
#[error("Could not resolve '{reference}'")]
|
#[error("Could not resolve '{reference}'")]
|
||||||
pub struct CouldNotResolveError {
|
pub struct CouldNotResolveNpmNvError {
|
||||||
reference: deno_semver::npm::NpmPackageNvReference,
|
pub reference: deno_semver::npm::NpmPackageNvReference,
|
||||||
#[source]
|
#[source]
|
||||||
#[inherit]
|
#[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 {
|
impl FoundPackageJsonDepFlag {
|
||||||
|
@ -359,7 +366,7 @@ impl<
|
||||||
resolution_mode,
|
resolution_mode,
|
||||||
resolution_kind,
|
resolution_kind,
|
||||||
)
|
)
|
||||||
.map_err(|source| CouldNotResolveError {
|
.map_err(|source| CouldNotResolveNpmNvError {
|
||||||
reference: nv_ref.clone(),
|
reference: nv_ref.clone(),
|
||||||
source,
|
source,
|
||||||
})?
|
})?
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue