diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-09-29 09:26:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-29 09:26:25 -0400 |
commit | 5edd102f3f912a53c7bcad3b0fa4feb672ada323 (patch) | |
tree | 2402b64e527bd859f3a2c71d3e96a89992002aa2 /cli/worker.rs | |
parent | d43e48c4e96b02289d505cd2558ba85d7d6cb57b (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.rs | 17 |
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), |