summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/module_loader.rs10
-rw-r--r--cli/standalone/mod.rs2
-rw-r--r--cli/worker.rs21
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()),