22
33//! This mod provides functions to remap a `JsError` based on a source map.
44
5- // TODO(bartlomieju): remove once `SourceMapGetter` is removed.
6- #![ allow( deprecated) ]
7-
85use crate :: resolve_url;
96use crate :: ModuleLoader ;
107use crate :: ModuleName ;
@@ -14,17 +11,6 @@ use std::collections::HashMap;
1411use std:: rc:: Rc ;
1512use std:: str;
1613
17- #[ deprecated = "Use `ModuleLoader` methods instead. This trait will be removed in deno_core v0.300.0." ]
18- pub trait SourceMapGetter {
19- /// Returns the raw source map file.
20- fn get_source_map ( & self , file_name : & str ) -> Option < Vec < u8 > > ;
21- fn get_source_line (
22- & self ,
23- file_name : & str ,
24- line_number : usize ,
25- ) -> Option < String > ;
26- }
27-
2814#[ derive( Debug , PartialEq ) ]
2915pub enum SourceMapApplication {
3016 /// No mapping was applied, the location is unchanged.
@@ -51,22 +37,17 @@ pub struct SourceMapper {
5137 source_lines : HashMap < ( String , i64 ) , Option < String > > ,
5238
5339 loader : Rc < dyn ModuleLoader > ,
54- getter : Option < Rc < dyn SourceMapGetter > > ,
5540
5641 ext_source_maps : HashMap < ModuleName , SourceMapData > ,
5742}
5843
5944impl SourceMapper {
60- pub fn new (
61- loader : Rc < dyn ModuleLoader > ,
62- getter : Option < Rc < dyn SourceMapGetter > > ,
63- ) -> Self {
45+ pub fn new ( loader : Rc < dyn ModuleLoader > ) -> Self {
6446 Self {
6547 maps : Default :: default ( ) ,
6648 source_lines : Default :: default ( ) ,
6749 ext_source_maps : Default :: default ( ) ,
6850 loader,
69- getter,
7051 }
7152 }
7253
@@ -100,7 +81,6 @@ impl SourceMapper {
10081 let line_number = line_number - 1 ;
10182 let column_number = column_number - 1 ;
10283
103- let getter = self . getter . as_ref ( ) ;
10484 let maybe_source_map =
10585 self . maps . entry ( file_name. to_owned ( ) ) . or_insert_with ( || {
10686 None
@@ -110,9 +90,6 @@ impl SourceMapper {
11090 . or_else ( || {
11191 SourceMap :: from_slice ( & self . loader . get_source_map ( file_name) ?) . ok ( )
11292 } )
113- . or_else ( || {
114- SourceMap :: from_slice ( & getter?. get_source_map ( file_name) ?) . ok ( )
115- } )
11693 } ) ;
11794
11895 let Some ( source_map) = maybe_source_map. as_ref ( ) else {
@@ -172,24 +149,9 @@ impl SourceMapper {
172149 return maybe_source_line. clone ( ) ;
173150 }
174151
175- // TODO(bartlomieju): shouldn't we cache `None` values to avoid computing it each time, instead of early return?
176- if let Some ( source_line) = self
152+ let s = self
177153 . loader
178- . get_source_mapped_source_line ( file_name, ( line_number - 1 ) as usize )
179- . filter ( |s| s. len ( ) <= Self :: MAX_SOURCE_LINE_LENGTH )
180- {
181- // Cache and return
182- self . source_lines . insert (
183- ( file_name. to_string ( ) , line_number) ,
184- Some ( source_line. to_string ( ) ) ,
185- ) ;
186- return Some ( source_line) ;
187- }
188-
189- // TODO(bartlomieju): remove in deno_core 0.230.0
190- // Fallback to a deprecated API
191- let getter = self . getter . as_ref ( ) ?;
192- let s = getter. get_source_line ( file_name, ( line_number - 1 ) as usize ) ;
154+ . get_source_mapped_source_line ( file_name, ( line_number - 1 ) as usize ) ;
193155 let maybe_source_line =
194156 s. filter ( |s| s. len ( ) <= Self :: MAX_SOURCE_LINE_LENGTH ) ;
195157 // Cache and return
@@ -275,7 +237,7 @@ mod tests {
275237 } ,
276238 ) ;
277239
278- let mut source_mapper = SourceMapper :: new ( Rc :: new ( loader) , None ) ;
240+ let mut source_mapper = SourceMapper :: new ( Rc :: new ( loader) ) ;
279241
280242 // Non-existent file
281243 let application =
0 commit comments