summaryrefslogtreecommitdiff
path: root/runtime/worker.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-04-24 19:44:35 -0400
committerGitHub <noreply@github.com>2023-04-24 19:44:35 -0400
commitaa286fdecb15461ef8ddd4c372f5a13e01e1cb7b (patch)
tree47ddc4e428b650fae536c3c1eb73ae5a64c4fe6a /runtime/worker.rs
parentbb74e75a049768c2949aa08de6752a16813b97de (diff)
refactor(ext/node): allow injecting `NodeFs` from CLI (#18829)
This allows providing a `NodeFs` as part of the `WorkerOptions`.
Diffstat (limited to 'runtime/worker.rs')
-rw-r--r--runtime/worker.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/runtime/worker.rs b/runtime/worker.rs
index 5cd60604d..56684e992 100644
--- a/runtime/worker.rs
+++ b/runtime/worker.rs
@@ -33,7 +33,6 @@ use deno_core::SourceMapGetter;
use deno_fs::StdFs;
use deno_io::Stdio;
use deno_kv::sqlite::SqliteDbHandler;
-use deno_node::NpmResolver;
use deno_tls::rustls::RootCertStore;
use deno_web::BlobStore;
use log::debug;
@@ -94,7 +93,8 @@ pub struct WorkerOptions {
/// If not provided runtime will error if code being
/// executed tries to load modules.
pub module_loader: Rc<dyn ModuleLoader>,
- pub npm_resolver: Option<Rc<dyn NpmResolver>>,
+ pub node_fs: Option<Arc<dyn deno_node::NodeFs>>,
+ pub npm_resolver: Option<Arc<dyn deno_node::NpmResolver>>,
// Callbacks invoked when creating new instance of WebWorker
pub create_web_worker_cb: Arc<ops::worker_host::CreateWebWorkerCb>,
pub web_worker_preload_module_cb: Arc<ops::worker_host::WorkerEventCb>,
@@ -164,6 +164,7 @@ impl Default for WorkerOptions {
broadcast_channel: Default::default(),
source_map_getter: Default::default(),
root_cert_store: Default::default(),
+ node_fs: Default::default(),
npm_resolver: Default::default(),
blob_store: Default::default(),
extensions: Default::default(),
@@ -268,6 +269,7 @@ impl MainWorker {
deno_fs::deno_fs::init_ops::<_, PermissionsContainer>(unstable, StdFs),
deno_node::deno_node::init_ops::<crate::RuntimeNodeEnv>(
options.npm_resolver,
+ options.node_fs,
),
// Ops from this crate
ops::runtime::deno_runtime::init_ops(main_module.clone()),