summaryrefslogtreecommitdiff
path: root/runtime/ops/web_worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ops/web_worker.rs')
-rw-r--r--runtime/ops/web_worker.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/runtime/ops/web_worker.rs b/runtime/ops/web_worker.rs
index 026e38157..8439e4384 100644
--- a/runtime/ops/web_worker.rs
+++ b/runtime/ops/web_worker.rs
@@ -1,6 +1,9 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
+mod sync_fetch;
+
use crate::web_worker::WebWorkerInternalHandle;
+use crate::web_worker::WebWorkerType;
use crate::web_worker::WorkerControlEvent;
use deno_core::error::generic_error;
use deno_core::error::AnyError;
@@ -13,6 +16,8 @@ use deno_web::JsMessageData;
use std::cell::RefCell;
use std::rc::Rc;
+use self::sync_fetch::op_worker_sync_fetch;
+
pub fn init() -> Extension {
Extension::builder()
.ops(vec![
@@ -25,6 +30,8 @@ pub fn init() -> Extension {
"op_worker_unhandled_error",
op_sync(op_worker_unhandled_error),
),
+ ("op_worker_get_type", op_sync(op_worker_get_type)),
+ ("op_worker_sync_fetch", op_sync(op_worker_sync_fetch)),
])
.build()
}
@@ -79,3 +86,12 @@ fn op_worker_unhandled_error(
.expect("Failed to propagate error event to parent worker");
Ok(())
}
+
+fn op_worker_get_type(
+ state: &mut OpState,
+ _: (),
+ _: (),
+) -> Result<WebWorkerType, AnyError> {
+ let handle = state.borrow::<WebWorkerInternalHandle>().clone();
+ Ok(handle.worker_type)
+}