diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/module_loader.rs | 10 | ||||
-rw-r--r-- | cli/standalone/mod.rs | 2 | ||||
-rw-r--r-- | cli/worker.rs | 21 |
3 files changed, 25 insertions, 8 deletions
diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 56e103d1b..5156e98e3 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -55,6 +55,7 @@ use deno_core::ModuleType; use deno_core::RequestedModuleType; use deno_core::ResolutionKind; use deno_core::SourceCodeCacheInfo; +use deno_core::SourceMapGetter; use deno_graph::source::ResolutionMode; use deno_graph::source::Resolver; use deno_graph::GraphKind; @@ -292,7 +293,8 @@ impl CliModuleLoaderFactory { shared: self.shared.clone(), }))); ModuleLoaderAndSourceMapGetter { - module_loader: loader, + module_loader: loader.clone(), + source_map_getter: Some(loader), } } } @@ -826,7 +828,11 @@ impl<TGraphContainer: ModuleGraphContainer> ModuleLoader } std::future::ready(()).boxed_local() } +} +impl<TGraphContainer: ModuleGraphContainer> SourceMapGetter + for CliModuleLoader<TGraphContainer> +{ fn get_source_map(&self, file_name: &str) -> Option<Vec<u8>> { let specifier = resolve_url(file_name).ok()?; match specifier.scheme() { @@ -839,7 +845,7 @@ impl<TGraphContainer: ModuleGraphContainer> ModuleLoader source_map_from_code(source.code.as_bytes()) } - fn get_source_mapped_source_line( + fn get_source_line( &self, file_name: &str, line_number: usize, diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 8701c0ad5..e0c8e66ff 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -385,6 +385,7 @@ impl ModuleLoaderFactory for StandaloneModuleLoaderFactory { root_permissions, dynamic_permissions, }), + source_map_getter: None, } } @@ -399,6 +400,7 @@ impl ModuleLoaderFactory for StandaloneModuleLoaderFactory { root_permissions, dynamic_permissions, }), + source_map_getter: None, } } } diff --git a/cli/worker.rs b/cli/worker.rs index a639dae41..36435d634 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -18,6 +18,7 @@ use deno_core::ModuleId; use deno_core::ModuleLoader; use deno_core::PollEventLoopOptions; use deno_core::SharedArrayBufferStore; +use deno_core::SourceMapGetter; use deno_runtime::code_cache; use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel; use deno_runtime::deno_fs; @@ -54,6 +55,7 @@ use crate::version; pub struct ModuleLoaderAndSourceMapGetter { pub module_loader: Rc<dyn ModuleLoader>, + pub source_map_getter: Option<Rc<dyn SourceMapGetter>>, } pub trait ModuleLoaderFactory: Send + Sync { @@ -514,7 +516,10 @@ impl CliMainWorkerFactory { (main_module, false) }; - let ModuleLoaderAndSourceMapGetter { module_loader } = shared + let ModuleLoaderAndSourceMapGetter { + module_loader, + source_map_getter, + } = shared .module_loader_factory .create_for_main(PermissionsContainer::allow_all(), permissions.clone()); let maybe_inspector_server = shared.maybe_inspector_server.clone(); @@ -591,6 +596,7 @@ impl CliMainWorkerFactory { .clone(), root_cert_store_provider: Some(shared.root_cert_store_provider.clone()), seed: shared.options.seed, + source_map_getter, format_js_error_fn: Some(Arc::new(format_js_error)), create_web_worker_cb, maybe_inspector_server, @@ -724,11 +730,13 @@ fn create_web_worker_callback( Arc::new(move |args| { let maybe_inspector_server = shared.maybe_inspector_server.clone(); - let ModuleLoaderAndSourceMapGetter { module_loader } = - shared.module_loader_factory.create_for_worker( - args.parent_permissions.clone(), - args.permissions.clone(), - ); + let ModuleLoaderAndSourceMapGetter { + module_loader, + source_map_getter, + } = shared.module_loader_factory.create_for_worker( + args.parent_permissions.clone(), + args.permissions.clone(), + ); let create_web_worker_cb = create_web_worker_callback(mode, shared.clone(), stdio.clone()); @@ -794,6 +802,7 @@ fn create_web_worker_callback( seed: shared.options.seed, create_web_worker_cb, format_js_error_fn: Some(Arc::new(format_js_error)), + source_map_getter, module_loader, fs: shared.fs.clone(), node_resolver: Some(shared.node_resolver.clone()), |