From 3bf147fe287ac779b20d318daba56b336f356adf Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 25 Jul 2024 19:08:14 -0400 Subject: refactor: decouple node resolution from deno_core (#24724) --- runtime/Cargo.toml | 1 + runtime/snapshot.rs | 2 +- runtime/web_worker.rs | 8 +++----- runtime/worker.rs | 10 ++++------ 4 files changed, 9 insertions(+), 12 deletions(-) (limited to 'runtime') diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 7772b017b..9980df294 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -94,6 +94,7 @@ deno_webgpu.workspace = true deno_webidl.workspace = true deno_websocket.workspace = true deno_webstorage.workspace = true +node_resolver = { workspace = true, features = ["sync"] } dlopen2.workspace = true encoding_rs.workspace = true diff --git a/runtime/snapshot.rs b/runtime/snapshot.rs index 2144ff07a..da66bff5e 100644 --- a/runtime/snapshot.rs +++ b/runtime/snapshot.rs @@ -254,7 +254,7 @@ pub fn create_runtime_snapshot( deno_http::deno_http::init_ops_and_esm::(), deno_io::deno_io::init_ops_and_esm(Default::default()), deno_fs::deno_fs::init_ops_and_esm::(fs.clone()), - deno_node::deno_node::init_ops_and_esm::(None, None, fs), + deno_node::deno_node::init_ops_and_esm::(None, fs), runtime::init_ops_and_esm(), ops::runtime::deno_runtime::init_ops("deno:runtime".parse().unwrap()), ops::worker_host::deno_worker_host::init_ops( diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index cf0384196..2611b6f34 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -43,7 +43,7 @@ use deno_fs::FileSystem; use deno_http::DefaultHttpPropertyExtractor; use deno_io::Stdio; use deno_kv::dynamic::MultiBackendDbHandler; -use deno_node::NodeResolver; +use deno_node::NodeExtInitServices; use deno_permissions::PermissionsContainer; use deno_terminal::colors; use deno_tls::RootCertStoreProvider; @@ -364,8 +364,7 @@ pub struct WebWorkerOptions { pub seed: Option, pub fs: Arc, pub module_loader: Rc, - pub node_resolver: Option>, - pub npm_resolver: Option>, + pub node_services: Option, pub create_web_worker_cb: Arc, pub format_js_error_fn: Option>, pub worker_type: WebWorkerType, @@ -490,8 +489,7 @@ impl WebWorker { options.fs.clone(), ), deno_node::deno_node::init_ops_and_esm::( - options.node_resolver, - options.npm_resolver, + options.node_services, options.fs, ), // Runtime ops that are always initialized for WebWorkers diff --git a/runtime/worker.rs b/runtime/worker.rs index fc11be582..bd67c8706 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -38,6 +38,7 @@ use deno_fs::FileSystem; use deno_http::DefaultHttpPropertyExtractor; use deno_io::Stdio; use deno_kv::dynamic::MultiBackendDbHandler; +use deno_node::NodeExtInitServices; use deno_permissions::PermissionsContainer; use deno_tls::RootCertStoreProvider; use deno_tls::TlsKeys; @@ -155,8 +156,7 @@ pub struct WorkerOptions { /// If not provided runtime will error if code being /// executed tries to load modules. pub module_loader: Rc, - pub node_resolver: Option>, - pub npm_resolver: Option>, + pub node_services: Option, // Callbacks invoked when creating new instance of WebWorker pub create_web_worker_cb: Arc, pub format_js_error_fn: Option>, @@ -224,8 +224,7 @@ impl Default for WorkerOptions { cache_storage_dir: Default::default(), broadcast_channel: Default::default(), root_cert_store_provider: Default::default(), - node_resolver: Default::default(), - npm_resolver: Default::default(), + node_services: Default::default(), blob_store: Default::default(), extensions: Default::default(), startup_snapshot: Default::default(), @@ -414,8 +413,7 @@ impl MainWorker { options.fs.clone(), ), deno_node::deno_node::init_ops_and_esm::( - options.node_resolver, - options.npm_resolver, + options.node_services, options.fs, ), // Ops from this crate -- cgit v1.2.3