diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-10-25 18:13:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-25 18:13:22 -0400 |
commit | 842e29057d6e545c6b498c584a5366fff34f6aa7 (patch) | |
tree | aba1bb9d767945ba72be5f11c5c87027f65c5678 /cli/factory.rs | |
parent | 79a9f2a77c1c517282a0e3ac77f8a1252b6c50b9 (diff) |
refactor: break out ModuleInfoCache from ParsedSourceCache (#20977)
As title. This will help use the two independently from the other, which
will help in an upcoming deno doc PR where I need to parse the source
files with scope analysis.
Diffstat (limited to 'cli/factory.rs')
-rw-r--r-- | cli/factory.rs | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/cli/factory.rs b/cli/factory.rs index b5240a85a..9cdd32702 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -15,6 +15,7 @@ use crate::cache::EmitCache; use crate::cache::GlobalHttpCache; use crate::cache::HttpCache; use crate::cache::LocalHttpCache; +use crate::cache::ModuleInfoCache; use crate::cache::NodeAnalysisCache; use crate::cache::ParsedSourceCache; use crate::emit::Emitter; @@ -152,6 +153,7 @@ struct CliFactoryServices { maybe_inspector_server: Deferred<Option<Arc<InspectorServer>>>, root_cert_store_provider: Deferred<Arc<dyn RootCertStoreProvider>>, blob_store: Deferred<Arc<BlobStore>>, + module_info_cache: Deferred<Arc<ModuleInfoCache>>, parsed_source_cache: Deferred<Arc<ParsedSourceCache>>, resolver: Deferred<Arc<CliGraphResolver>>, maybe_file_watcher_reporter: Deferred<Option<FileWatcherReporter>>, @@ -413,16 +415,21 @@ impl CliFactory { }) } - pub fn parsed_source_cache( - &self, - ) -> Result<&Arc<ParsedSourceCache>, AnyError> { - self.services.parsed_source_cache.get_or_try_init(|| { - Ok(Arc::new(ParsedSourceCache::new( + pub fn module_info_cache(&self) -> Result<&Arc<ModuleInfoCache>, AnyError> { + self.services.module_info_cache.get_or_try_init(|| { + Ok(Arc::new(ModuleInfoCache::new( self.caches()?.dep_analysis_db(), ))) }) } + pub fn parsed_source_cache(&self) -> &Arc<ParsedSourceCache> { + self + .services + .parsed_source_cache + .get_or_init(Default::default) + } + pub fn emitter(&self) -> Result<&Arc<Emitter>, AnyError> { self.services.emitter.get_or_try_init(|| { let ts_config_result = self @@ -435,7 +442,7 @@ impl CliFactory { crate::args::ts_config_to_emit_options(ts_config_result.ts_config); Ok(Arc::new(Emitter::new( self.emit_cache()?.clone(), - self.parsed_source_cache()?.clone(), + self.parsed_source_cache().clone(), emit_options, ))) }) @@ -503,7 +510,8 @@ impl CliFactory { self.options.clone(), self.resolver().await?.clone(), self.npm_resolver().await?.clone(), - self.parsed_source_cache()?.clone(), + self.module_info_cache()?.clone(), + self.parsed_source_cache().clone(), self.maybe_lockfile().clone(), self.maybe_file_watcher_reporter().clone(), self.emit_cache()?.clone(), @@ -547,7 +555,8 @@ impl CliFactory { self.maybe_lockfile().clone(), self.maybe_file_watcher_reporter().clone(), self.module_graph_builder().await?.clone(), - self.parsed_source_cache()?.clone(), + self.module_info_cache()?.clone(), + self.parsed_source_cache().clone(), self.text_only_progress_bar().clone(), self.resolver().await?.clone(), self.type_checker().await?.clone(), @@ -622,7 +631,7 @@ impl CliFactory { self.emitter()?.clone(), self.graph_container().clone(), self.module_load_preparer().await?.clone(), - self.parsed_source_cache()?.clone(), + self.parsed_source_cache().clone(), self.resolver().await?.clone(), cli_node_resolver.clone(), NpmModuleLoader::new( |