diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-09-28 16:43:45 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-28 22:43:45 +0200 |
commit | d43e48c4e96b02289d505cd2558ba85d7d6cb57b (patch) | |
tree | d69a40b3e948a5c4ea166700610e24e35ecc61c4 /cli/worker.rs | |
parent | 0bd53fd52d8937afed401fe1c61bb2ba0b23501c (diff) |
refactor(ext/node): remove dependency on deno_npm and deno_semver (#20718)
This is required from BYONM (bring your own node_modules).
Part of #18967
Diffstat (limited to 'cli/worker.rs')
-rw-r--r-- | cli/worker.rs | 34 |
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); }; |