summaryrefslogtreecommitdiff
path: root/cli/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/worker.rs')
-rw-r--r--cli/worker.rs34
1 files changed, 25 insertions, 9 deletions
diff --git a/cli/worker.rs b/cli/worker.rs
index b29f22e6e..5d80ab6fd 100644
--- a/cli/worker.rs
+++ b/cli/worker.rs
@@ -39,6 +39,7 @@ use deno_runtime::worker::MainWorker;
use deno_runtime::worker::WorkerOptions;
use deno_runtime::BootstrapOptions;
use deno_runtime::WorkerLogLevel;
+use deno_semver::npm::NpmPackageNvReference;
use deno_semver::npm::NpmPackageReqReference;
use deno_semver::package::PackageReqReference;
@@ -386,6 +387,9 @@ impl CliMainWorkerFactory {
.npm_resolver
.add_package_reqs(&[package_ref.req().clone()])
.await?;
+ let package_ref = shared
+ .npm_resolver
+ .resolve_pkg_nv_ref_from_pkg_req_ref(&package_ref)?;
let node_resolution =
self.resolve_binary_entrypoint(&package_ref, &permissions)?;
let is_main_cjs = matches!(node_resolution, NodeResolution::CommonJs(_));
@@ -511,10 +515,18 @@ impl CliMainWorkerFactory {
fn resolve_binary_entrypoint(
&self,
- package_ref: &NpmPackageReqReference,
+ package_ref: &NpmPackageNvReference,
permissions: &PermissionsContainer,
) -> Result<NodeResolution, AnyError> {
- match self.shared.node_resolver.resolve_binary_export(package_ref) {
+ let package_folder = self
+ .shared
+ .npm_resolver
+ .resolve_pkg_folder_from_deno_module(package_ref.nv())?;
+ match self
+ .shared
+ .node_resolver
+ .resolve_binary_export(&package_folder, package_ref.sub_path())
+ {
Ok(node_resolution) => Ok(node_resolution),
Err(original_err) => {
// if the binary entrypoint was not found, fallback to regular node resolution
@@ -534,7 +546,7 @@ impl CliMainWorkerFactory {
/// resolve the binary entrypoint using regular node resolution
fn resolve_binary_entrypoint_fallback(
&self,
- package_ref: &NpmPackageReqReference,
+ package_ref: &NpmPackageNvReference,
permissions: &PermissionsContainer,
) -> Result<Option<NodeResolution>, AnyError> {
// only fallback if the user specified a sub path
@@ -545,12 +557,16 @@ impl CliMainWorkerFactory {
return Ok(None);
}
- let Some(resolution) =
- self.shared.node_resolver.resolve_npm_req_reference(
- package_ref,
- NodeResolutionMode::Execution,
- permissions,
- )?
+ let package_folder = self
+ .shared
+ .npm_resolver
+ .resolve_pkg_folder_from_deno_module(package_ref.nv())?;
+ let Some(resolution) = self.shared.node_resolver.resolve_npm_reference(
+ &package_folder,
+ package_ref.sub_path(),
+ NodeResolutionMode::Execution,
+ permissions,
+ )?
else {
return Ok(None);
};