diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-07-25 19:08:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-25 19:08:14 -0400 |
commit | 3bf147fe287ac779b20d318daba56b336f356adf (patch) | |
tree | 3b5bfe2a1ad918b275a2cd08f7dcc05f90a180ab /cli/worker.rs | |
parent | 0cf7f268a7df7711ac6ab8c2c67b4d7abf454fcd (diff) |
refactor: decouple node resolution from deno_core (#24724)
Diffstat (limited to 'cli/worker.rs')
-rw-r--r-- | cli/worker.rs | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/cli/worker.rs b/cli/worker.rs index 0d7e61c50..8673804ab 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -22,8 +22,7 @@ use deno_runtime::code_cache; use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; use deno_runtime::deno_fs; use deno_runtime::deno_node; -use deno_runtime::deno_node::NodeResolution; -use deno_runtime::deno_node::NodeResolutionMode; +use deno_runtime::deno_node::NodeExtInitServices; use deno_runtime::deno_node::NodeResolver; use deno_runtime::deno_permissions::PermissionsContainer; use deno_runtime::deno_tls::RootCertStoreProvider; @@ -40,6 +39,8 @@ use deno_runtime::WorkerExecutionMode; use deno_runtime::WorkerLogLevel; use deno_semver::npm::NpmPackageReqReference; use deno_terminal::colors; +use node_resolver::NodeResolution; +use node_resolver::NodeResolutionMode; use tokio::select; use crate::args::CliLockfile; @@ -144,7 +145,17 @@ struct SharedWorkerState { } impl SharedWorkerState { - // Currently empty + pub fn create_node_init_services(&self) -> NodeExtInitServices { + NodeExtInitServices { + node_require_resolver: self.npm_resolver.clone().into_require_resolver(), + node_resolver: self.node_resolver.clone(), + npm_process_state_provider: self + .npm_resolver + .clone() + .into_process_state_provider(), + npm_resolver: self.npm_resolver.clone().into_npm_resolver(), + } + } } pub struct CliMainWorker { @@ -599,8 +610,7 @@ impl CliMainWorkerFactory { strace_ops: shared.options.strace_ops.clone(), module_loader, fs: shared.fs.clone(), - node_resolver: Some(shared.node_resolver.clone()), - npm_resolver: Some(shared.npm_resolver.clone().into_npm_resolver()), + node_services: Some(shared.create_node_init_services()), get_error_class_fn: Some(&errors::get_error_class_name), cache_storage_dir, origin_storage_dir, @@ -793,8 +803,7 @@ fn create_web_worker_callback( format_js_error_fn: Some(Arc::new(format_js_error)), module_loader, fs: shared.fs.clone(), - node_resolver: Some(shared.node_resolver.clone()), - npm_resolver: Some(shared.npm_resolver.clone().into_npm_resolver()), + node_services: Some(shared.create_node_init_services()), worker_type: args.worker_type, maybe_inspector_server, get_error_class_fn: Some(&errors::get_error_class_name), |