diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2022-04-27 00:06:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-27 01:06:10 +0200 |
commit | 9853c96cc4686a6cd1ffa1e9081c012b8df72ff7 (patch) | |
tree | c631ebfc363c06c468367be7ecd5b98110dde3a0 /runtime/ops/worker_host.rs | |
parent | 58eab0e2b37fd8c3c83445196d4bde419740373d (diff) |
refactor: Remove PrettyJsError and js_error_create_fn (#14378)
This commit:
- removes "fmt_errors::PrettyJsError" in favor of "format_js_error" fn
- removes "deno_core::JsError::create" and
"deno_core::RuntimeOptions::js_error_create_fn"
- adds new option to "deno_runtime::ops::worker_host::init"
Diffstat (limited to 'runtime/ops/worker_host.rs')
-rw-r--r-- | runtime/ops/worker_host.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs index 6c691c5a0..23ffcd8b1 100644 --- a/runtime/ops/worker_host.rs +++ b/runtime/ops/worker_host.rs @@ -11,6 +11,7 @@ use crate::web_worker::WebWorkerHandle; use crate::web_worker::WebWorkerType; use crate::web_worker::WorkerControlEvent; use crate::web_worker::WorkerId; +use crate::worker::FormatJsErrorFn; use deno_core::error::AnyError; use deno_core::futures::future::LocalFutureObj; use deno_core::op; @@ -54,6 +55,9 @@ pub type PreloadModuleCb = dyn Fn(WebWorker) -> LocalFutureObj<'static, Result<W #[derive(Clone)] pub struct CreateWebWorkerCbHolder(Arc<CreateWebWorkerCb>); +#[derive(Clone)] +pub struct FormatJsErrorFnHolder(Option<Arc<FormatJsErrorFn>>); + /// A holder for callback that can used to preload some modules into a WebWorker /// before actual worker code is executed. It's a struct instead of a type /// because `GothamState` used in `OpState` overrides @@ -106,6 +110,7 @@ pub type WorkersTable = HashMap<WorkerId, WorkerThread>; pub fn init( create_web_worker_cb: Arc<CreateWebWorkerCb>, preload_module_cb: Arc<PreloadModuleCb>, + format_js_error_fn: Option<Arc<FormatJsErrorFn>>, ) -> Extension { Extension::builder() .state(move |state| { @@ -118,6 +123,9 @@ pub fn init( let preload_module_cb_holder = PreloadModuleCbHolder(preload_module_cb.clone()); state.put::<PreloadModuleCbHolder>(preload_module_cb_holder); + let format_js_error_fn_holder = + FormatJsErrorFnHolder(format_js_error_fn.clone()); + state.put::<FormatJsErrorFnHolder>(format_js_error_fn_holder); Ok(()) }) @@ -193,6 +201,8 @@ fn op_create_worker( state.put::<CreateWebWorkerCbHolder>(create_web_worker_cb.clone()); let preload_module_cb = state.take::<PreloadModuleCbHolder>(); state.put::<PreloadModuleCbHolder>(preload_module_cb.clone()); + let format_js_error_fn = state.take::<FormatJsErrorFnHolder>(); + state.put::<FormatJsErrorFnHolder>(format_js_error_fn.clone()); state.put::<WorkerId>(worker_id.next().unwrap()); let module_specifier = deno_core::resolve_url(&specifier)?; @@ -238,6 +248,7 @@ fn op_create_worker( module_specifier, maybe_source_code, preload_module_cb.0, + format_js_error_fn.0, ) })?; |