summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-08-20 11:31:33 -0400
committerGitHub <noreply@github.com>2022-08-20 11:31:33 -0400
commit87f80ff6be5e2a132b583a9c380fff5db3cb2b07 (patch)
treeb2c43c9004b9ada204f3b5db7c221fa6322f026a /runtime
parent1ffbd561642d05a05e18ada764d50581dea779ef (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.rs2
-rw-r--r--runtime/examples/hello_runtime.rs1
-rw-r--r--runtime/web_worker.rs4
-rw-r--r--runtime/worker.rs5
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(),