diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-07-23 20:22:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-24 00:22:24 +0000 |
commit | 52ababc4bf948904092cff54c2ab8b91f6b9b443 (patch) | |
tree | 77dc2fe4a9eb79ce893e1593822df4de1f564260 /cli/standalone | |
parent | 445e05a39d005eab6f7d2f1f67a7ae2d7c85b1b3 (diff) |
fix(node): better detection for when to surface node resolution errors (#24653)
Diffstat (limited to 'cli/standalone')
-rw-r--r-- | cli/standalone/mod.rs | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 74586c1be..561c99c98 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -151,15 +151,14 @@ impl ModuleLoader for EmbeddedModuleLoader { })? }; - if let Some(result) = self.shared.node_resolver.resolve_if_in_npm_package( - specifier, - &referrer, - NodeResolutionMode::Execution, - ) { - return match result? { - Some(res) => Ok(res.into_url()), - None => Err(generic_error("not found")), - }; + if self.shared.node_resolver.in_npm_package(&referrer) { + return Ok( + self + .shared + .node_resolver + .resolve(specifier, &referrer, NodeResolutionMode::Execution)? + .into_url(), + ); } let mapped_resolution = @@ -250,14 +249,12 @@ impl ModuleLoader for EmbeddedModuleLoader { Err(err) if err.is_unmapped_bare_specifier() && referrer.scheme() == "file" => { - // todo(dsherret): return a better error from node resolution so that - // we can more easily tell whether to surface it or not - let node_result = self.shared.node_resolver.resolve( + let maybe_res = self.shared.node_resolver.resolve_if_for_npm_pkg( specifier, &referrer, NodeResolutionMode::Execution, - ); - if let Ok(Some(res)) = node_result { + )?; + if let Some(res) = maybe_res { return Ok(res.into_url()); } Err(err.into()) |