summaryrefslogtreecommitdiff
path: root/cli/worker.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-09-29 09:26:25 -0400
committerGitHub <noreply@github.com>2023-09-29 09:26:25 -0400
commit5edd102f3f912a53c7bcad3b0fa4feb672ada323 (patch)
tree2402b64e527bd859f3a2c71d3e96a89992002aa2 /cli/worker.rs
parentd43e48c4e96b02289d505cd2558ba85d7d6cb57b (diff)
refactor(cli): make `CliNpmResolver` a trait (#20732)
This makes `CliNpmResolver` a trait. The terminology used is: - **managed** - Deno manages the node_modules folder and does an auto-install (ex. `ManagedCliNpmResolver`) - **byonm** - "Bring your own node_modules" (ex. `ByonmCliNpmResolver`, which is in this PR, but unimplemented at the moment) Part of #18967
Diffstat (limited to 'cli/worker.rs')
-rw-r--r--cli/worker.rs17
1 files changed, 9 insertions, 8 deletions
diff --git a/cli/worker.rs b/cli/worker.rs
index 5d80ab6fd..d4277c618 100644
--- a/cli/worker.rs
+++ b/cli/worker.rs
@@ -98,7 +98,7 @@ pub struct CliMainWorkerOptions {
struct SharedWorkerState {
options: CliMainWorkerOptions,
storage_key_resolver: StorageKeyResolver,
- npm_resolver: Arc<CliNpmResolver>,
+ npm_resolver: Arc<dyn CliNpmResolver>,
node_resolver: Arc<NodeResolver>,
blob_store: Arc<BlobStore>,
broadcast_channel: InMemoryBroadcastChannel,
@@ -305,7 +305,7 @@ impl CliMainWorkerFactory {
#[allow(clippy::too_many_arguments)]
pub fn new(
storage_key_resolver: StorageKeyResolver,
- npm_resolver: Arc<CliNpmResolver>,
+ npm_resolver: Arc<dyn CliNpmResolver>,
node_resolver: Arc<NodeResolver>,
blob_store: Arc<BlobStore>,
module_loader_factory: Box<dyn ModuleLoaderFactory>,
@@ -383,10 +383,11 @@ impl CliMainWorkerFactory {
} else {
package_ref
};
- shared
- .npm_resolver
- .add_package_reqs(&[package_ref.req().clone()])
- .await?;
+ if let Some(npm_resolver) = shared.npm_resolver.as_managed() {
+ 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)?;
@@ -486,7 +487,7 @@ impl CliMainWorkerFactory {
should_wait_for_inspector_session: shared.options.inspect_wait,
module_loader,
fs: shared.fs.clone(),
- npm_resolver: Some(shared.npm_resolver.clone()),
+ npm_resolver: Some(shared.npm_resolver.clone().into_npm_resolver()),
get_error_class_fn: Some(&errors::get_error_class_name),
cache_storage_dir,
origin_storage_dir,
@@ -652,7 +653,7 @@ fn create_web_worker_callback(
source_map_getter: maybe_source_map_getter,
module_loader,
fs: shared.fs.clone(),
- npm_resolver: Some(shared.npm_resolver.clone()),
+ npm_resolver: Some(shared.npm_resolver.clone().into_npm_resolver()),
worker_type: args.worker_type,
maybe_inspector_server,
get_error_class_fn: Some(&errors::get_error_class_name),