@@ -100,20 +100,16 @@ impl File {
100100 }
101101}
102102
103- /// Simple struct implementing in-process caching to prevent multiple
104- /// fs reads/net fetches for same file.
105103#[ derive( Debug , Clone , Default ) ]
106- struct FileCache ( Arc < Mutex < HashMap < ModuleSpecifier , File > > > ) ;
104+ struct MemoryFiles ( Arc < Mutex < HashMap < ModuleSpecifier , File > > > ) ;
107105
108- impl FileCache {
106+ impl MemoryFiles {
109107 pub fn get ( & self , specifier : & ModuleSpecifier ) -> Option < File > {
110- let cache = self . 0 . lock ( ) ;
111- cache. get ( specifier) . cloned ( )
108+ self . 0 . lock ( ) . get ( specifier) . cloned ( )
112109 }
113110
114111 pub fn insert ( & self , specifier : ModuleSpecifier , file : File ) -> Option < File > {
115- let mut cache = self . 0 . lock ( ) ;
116- cache. insert ( specifier, file)
112+ self . 0 . lock ( ) . insert ( specifier, file)
117113 }
118114}
119115
@@ -157,7 +153,7 @@ pub struct FetchOptions<'a> {
157153pub struct FileFetcher {
158154 auth_tokens : AuthTokens ,
159155 allow_remote : bool ,
160- cache : FileCache ,
156+ memory_files : MemoryFiles ,
161157 cache_setting : CacheSetting ,
162158 http_cache : Arc < dyn HttpCache > ,
163159 http_client : Arc < HttpClient > ,
@@ -178,7 +174,7 @@ impl FileFetcher {
178174 Self {
179175 auth_tokens : AuthTokens :: new ( env:: var ( "DENO_AUTH_TOKENS" ) . ok ( ) ) ,
180176 allow_remote,
181- cache : Default :: default ( ) ,
177+ memory_files : Default :: default ( ) ,
182178 cache_setting,
183179 http_cache,
184180 http_client,
@@ -498,7 +494,7 @@ impl FileFetcher {
498494 debug ! ( "FileFetcher::fetch() - specifier: {}" , specifier) ;
499495 let scheme = get_validated_scheme ( specifier) ?;
500496 options. permissions . check_specifier ( specifier) ?;
501- if let Some ( file) = self . cache . get ( specifier) {
497+ if let Some ( file) = self . memory_files . get ( specifier) {
502498 Ok ( file)
503499 } else if scheme == "file" {
504500 // we do not in memory cache files, as this would prevent files on the
@@ -514,27 +510,23 @@ impl FileFetcher {
514510 format ! ( "A remote specifier was requested: \" {specifier}\" , but --no-remote is specified." ) ,
515511 ) )
516512 } else {
517- let result = self
513+ self
518514 . fetch_remote (
519515 specifier,
520516 options. permissions ,
521517 10 ,
522518 options. maybe_accept . map ( String :: from) ,
523519 options. maybe_cache_setting . unwrap_or ( & self . cache_setting ) ,
524520 )
525- . await ;
526- if let Ok ( file) = & result {
527- self . cache . insert ( specifier. clone ( ) , file. clone ( ) ) ;
528- }
529- result
521+ . await
530522 }
531523 }
532524
533525 /// A synchronous way to retrieve a source file, where if the file has already
534526 /// been cached in memory it will be returned, otherwise for local files will
535527 /// be read from disk.
536528 pub fn get_source ( & self , specifier : & ModuleSpecifier ) -> Option < File > {
537- let maybe_file = self . cache . get ( specifier) ;
529+ let maybe_file = self . memory_files . get ( specifier) ;
538530 if maybe_file. is_none ( ) {
539531 let is_local = specifier. scheme ( ) == "file" ;
540532 if is_local {
@@ -548,9 +540,9 @@ impl FileFetcher {
548540 }
549541 }
550542
551- /// Insert a temporary module into the in memory cache for the file fetcher.
552- pub fn insert_cached ( & self , file : File ) -> Option < File > {
553- self . cache . insert ( file. specifier . clone ( ) , file)
543+ /// Insert a temporary module for the file fetcher.
544+ pub fn insert_memory_files ( & self , file : File ) -> Option < File > {
545+ self . memory_files . insert ( file. specifier . clone ( ) , file)
554546 }
555547}
556548
@@ -826,7 +818,7 @@ mod tests {
826818 "application/javascript" . to_string ( ) ,
827819 ) ] ) ) ,
828820 } ;
829- file_fetcher. insert_cached ( file. clone ( ) ) ;
821+ file_fetcher. insert_memory_files ( file. clone ( ) ) ;
830822
831823 let result = file_fetcher
832824 . fetch ( & specifier, PermissionsContainer :: allow_all ( ) )
@@ -836,30 +828,6 @@ mod tests {
836828 assert_eq ! ( result_file, file) ;
837829 }
838830
839- #[ tokio:: test]
840- async fn test_get_source ( ) {
841- let _http_server_guard = test_util:: http_server ( ) ;
842- let ( file_fetcher, _) = setup ( CacheSetting :: Use , None ) ;
843- let specifier =
844- resolve_url ( "http://localhost:4548/subdir/redirects/redirect1.js" )
845- . unwrap ( ) ;
846-
847- let result = file_fetcher
848- . fetch ( & specifier, PermissionsContainer :: allow_all ( ) )
849- . await ;
850- assert ! ( result. is_ok( ) ) ;
851-
852- let maybe_file = file_fetcher. get_source ( & specifier) ;
853- assert ! ( maybe_file. is_some( ) ) ;
854- let file = maybe_file. unwrap ( ) . into_text_decoded ( ) . unwrap ( ) ;
855- assert_eq ! ( file. source. as_ref( ) , "export const redirect = 1;\n " ) ;
856- assert_eq ! (
857- file. specifier,
858- resolve_url( "http://localhost:4545/subdir/redirects/redirect1.js" )
859- . unwrap( )
860- ) ;
861- }
862-
863831 #[ tokio:: test]
864832 async fn test_fetch_data_url ( ) {
865833 let ( file_fetcher, _) = setup ( CacheSetting :: Use , None ) ;
0 commit comments