diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/web_worker.rs | 4 | ||||
-rw-r--r-- | runtime/worker.rs | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs index 41e6ca4fe..308c294ef 100644 --- a/runtime/web_worker.rs +++ b/runtime/web_worker.rs @@ -5,6 +5,7 @@ use crate::ops; use crate::permissions::PermissionsContainer; use crate::shared::runtime; use crate::tokio_util::create_and_run_current_thread; +use crate::worker::import_meta_resolve_callback; use crate::worker::FormatJsErrorFn; use crate::BootstrapOptions; use deno_broadcast_channel::InMemoryBroadcastChannel; @@ -536,6 +537,9 @@ impl WebWorker { inspector: options.maybe_inspector_server.is_some(), feature_checker: Some(options.feature_checker.clone()), op_metrics_factory_fn, + import_meta_resolve_callback: Some(Box::new( + import_meta_resolve_callback, + )), ..Default::default() }); diff --git a/runtime/worker.rs b/runtime/worker.rs index 237ebfe13..f48f81fe7 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -50,6 +50,18 @@ use crate::BootstrapOptions; pub type FormatJsErrorFn = dyn Fn(&JsError) -> String + Sync + Send; +pub fn import_meta_resolve_callback( + loader: &dyn deno_core::ModuleLoader, + specifier: String, + referrer: String, +) -> Result<ModuleSpecifier, AnyError> { + loader.resolve( + &specifier, + &referrer, + deno_core::ResolutionKind::DynamicImport, + ) +} + #[derive(Clone, Default)] pub struct ExitCode(Arc<AtomicI32>); @@ -447,6 +459,9 @@ impl MainWorker { wait_for_inspector_disconnect_callback: Some( wait_for_inspector_disconnect_callback, ), + import_meta_resolve_callback: Some(Box::new( + import_meta_resolve_callback, + )), ..Default::default() }); |