summaryrefslogtreecommitdiff
path: root/core/source_map.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-07-19 11:58:18 -0400
committerGitHub <noreply@github.com>2022-07-19 11:58:18 -0400
commit0ab262b901348e9251262a02bef17d14ed13b997 (patch)
treefc5a6e3926ea7480714cbc844098eca6c43c1ab5 /core/source_map.rs
parente99d64acedb6e111d33f53599da494865978f1aa (diff)
feat: emit files on demand and fix racy emit (#15220)
Diffstat (limited to 'core/source_map.rs')
-rw-r--r--core/source_map.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/core/source_map.rs b/core/source_map.rs
index 6a261fa7d..0df58c4be 100644
--- a/core/source_map.rs
+++ b/core/source_map.rs
@@ -5,6 +5,7 @@
use crate::resolve_url;
pub use sourcemap::SourceMap;
use std::collections::HashMap;
+use std::rc::Rc;
use std::str;
pub trait SourceMapGetter {
@@ -17,6 +18,23 @@ pub trait SourceMapGetter {
) -> Option<String>;
}
+impl<T> SourceMapGetter for Rc<T>
+where
+ T: SourceMapGetter,
+{
+ fn get_source_map(&self, file_name: &str) -> Option<Vec<u8>> {
+ (**self).get_source_map(file_name)
+ }
+
+ fn get_source_line(
+ &self,
+ file_name: &str,
+ line_number: usize,
+ ) -> Option<String> {
+ (**self).get_source_line(file_name, line_number)
+ }
+}
+
#[derive(Debug, Default)]
pub struct SourceMapCache {
maps: HashMap<String, Option<SourceMap>>,