diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-08-20 11:31:33 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-20 11:31:33 -0400 |
commit | 87f80ff6be5e2a132b583a9c380fff5db3cb2b07 (patch) | |
tree | b2c43c9004b9ada204f3b5db7c221fa6322f026a /runtime | |
parent | 1ffbd561642d05a05e18ada764d50581dea779ef (diff) |
feat(unstable): initial support for npm specifiers (#15484)
Co-authored-by: Bartek IwaĆczuk <biwanczuk@gmail.com>
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/build.rs | 2 | ||||
-rw-r--r-- | runtime/examples/hello_runtime.rs | 1 | ||||
-rw-r--r-- | runtime/web_worker.rs | 4 | ||||
-rw-r--r-- | runtime/worker.rs | 5 |
4 files changed, 9 insertions, 3 deletions
diff --git a/runtime/build.rs b/runtime/build.rs index 0f3d7fb46..5e8132656 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -167,7 +167,7 @@ mod not_docs { deno_broadcast_channel::InMemoryBroadcastChannel::default(), false, // No --unstable. ), - // deno_node::init(), // todo(dsherret): re-enable + deno_node::init(false, None), // No --unstable. deno_ffi::init::<Permissions>(false), deno_net::init::<Permissions>( None, false, // No --unstable. diff --git a/runtime/examples/hello_runtime.rs b/runtime/examples/hello_runtime.rs index 2853c1120..d941cdd05 100644 --- a/runtime/examples/hello_runtime.rs +++ b/runtime/examples/hello_runtime.rs @@ -52,6 +52,7 @@ async fn main() -> Result<(), AnyError> { maybe_inspector_server: None, should_break_on_first_statement: false, module_loader, + npm_resolver: None, get_error_class_fn: Some(&get_error_class_name), origin_storage_dir: None, blob_store: BlobStore::default(), diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index dd7f49aef..7ef280252 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -31,6 +31,7 @@ use deno_core::ModuleSpecifier; use deno_core::RuntimeOptions; use deno_core::SharedArrayBufferStore; use deno_core::SourceMapGetter; +use deno_node::DenoDirNpmResolver; use deno_tls::rustls::RootCertStore; use deno_web::create_entangled_message_port; use deno_web::BlobStore; @@ -323,6 +324,7 @@ pub struct WebWorkerOptions { pub root_cert_store: Option<RootCertStore>, pub seed: Option<u64>, pub module_loader: Rc<dyn ModuleLoader>, + pub npm_resolver: Option<Rc<dyn DenoDirNpmResolver>>, pub create_web_worker_cb: Arc<ops::worker_host::CreateWebWorkerCb>, pub preload_module_cb: Arc<ops::worker_host::WorkerEventCb>, pub pre_execute_module_cb: Arc<ops::worker_host::WorkerEventCb>, @@ -421,7 +423,7 @@ impl WebWorker { unstable, options.unsafely_ignore_certificate_errors.clone(), ), - // deno_node::init(), // todo(dsherret): re-enable + deno_node::init(unstable, options.npm_resolver), ops::os::init_for_worker(), ops::permissions::init(), ops::process::init(), diff --git a/runtime/worker.rs b/runtime/worker.rs index 53d8c6377..ad2bcdc17 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -22,6 +22,7 @@ use deno_core::ModuleSpecifier; use deno_core::RuntimeOptions; use deno_core::SharedArrayBufferStore; use deno_core::SourceMapGetter; +use deno_node::DenoDirNpmResolver; use deno_tls::rustls::RootCertStore; use deno_web::BlobStore; use log::debug; @@ -67,6 +68,7 @@ pub struct WorkerOptions { pub root_cert_store: Option<RootCertStore>, pub seed: Option<u64>, pub module_loader: Rc<dyn ModuleLoader>, + pub npm_resolver: Option<Rc<dyn DenoDirNpmResolver>>, // 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>, @@ -163,7 +165,7 @@ impl MainWorker { unstable, options.unsafely_ignore_certificate_errors.clone(), ), - // deno_node::init() // todo(dsherret): re-enable, + deno_node::init(unstable, options.npm_resolver), ops::os::init(exit_code.clone()), ops::permissions::init(), ops::process::init(), @@ -428,6 +430,7 @@ mod tests { maybe_inspector_server: None, should_break_on_first_statement: false, module_loader: Rc::new(deno_core::FsModuleLoader), + npm_resolver: None, get_error_class_fn: None, origin_storage_dir: None, blob_store: BlobStore::default(), |