summaryrefslogtreecommitdiff
path: root/cli/cache
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-04-14 16:22:33 -0400
committerGitHub <noreply@github.com>2023-04-14 16:22:33 -0400
commit136dce67cec749dce5989ea29e88359ef79a0045 (patch)
tree38e96bbbf22dc06cdba418a35467b215f1335549 /cli/cache
parenta4111442191fff300132259752e6d2d5613d1871 (diff)
refactor: break up `ProcState` (#18707)
1. Breaks up functionality within `ProcState` into several other structs to break out the responsibilities (`ProcState` is only a data struct now). 2. Moves towards being able to inject dependencies more easily and have functionality only require what it needs. 3. Exposes `Arc<T>` around the "service structs" instead of it being embedded within them. The idea behind embedding them was to reduce the verbosity of needing to pass around `Arc<...>`, but I don't think it was exactly working and as we move more of these structs to be more injectable I don't think the extra verbosity will be a big deal.
Diffstat (limited to 'cli/cache')
-rw-r--r--cli/cache/caches.rs15
-rw-r--r--cli/cache/parsed_source.rs8
2 files changed, 9 insertions, 14 deletions
diff --git a/cli/cache/caches.rs b/cli/cache/caches.rs
index da6912f2a..0b60d0bec 100644
--- a/cli/cache/caches.rs
+++ b/cli/cache/caches.rs
@@ -1,7 +1,6 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
use std::path::PathBuf;
-use std::sync::Arc;
use once_cell::sync::OnceCell;
@@ -13,18 +12,18 @@ use super::node::NODE_ANALYSIS_CACHE_DB;
use super::parsed_source::PARSED_SOURCE_CACHE_DB;
use super::DenoDir;
-#[derive(Clone, Default)]
+#[derive(Default)]
pub struct Caches {
- fmt_incremental_cache_db: Arc<OnceCell<CacheDB>>,
- lint_incremental_cache_db: Arc<OnceCell<CacheDB>>,
- dep_analysis_db: Arc<OnceCell<CacheDB>>,
- node_analysis_db: Arc<OnceCell<CacheDB>>,
- type_checking_cache_db: Arc<OnceCell<CacheDB>>,
+ fmt_incremental_cache_db: OnceCell<CacheDB>,
+ lint_incremental_cache_db: OnceCell<CacheDB>,
+ dep_analysis_db: OnceCell<CacheDB>,
+ node_analysis_db: OnceCell<CacheDB>,
+ type_checking_cache_db: OnceCell<CacheDB>,
}
impl Caches {
fn make_db(
- cell: &Arc<OnceCell<CacheDB>>,
+ cell: &OnceCell<CacheDB>,
config: &'static CacheDBConfiguration,
path: PathBuf,
) -> CacheDB {
diff --git a/cli/cache/parsed_source.rs b/cli/cache/parsed_source.rs
index 09b1c13ae..0cac4afa6 100644
--- a/cli/cache/parsed_source.rs
+++ b/cli/cache/parsed_source.rs
@@ -73,7 +73,6 @@ impl deno_graph::ParsedSourceStore for ParsedSourceCacheSources {
/// A cache of `ParsedSource`s, which may be used with `deno_graph`
/// for cached dependency analysis.
-#[derive(Clone)]
pub struct ParsedSourceCache {
db: CacheDB,
sources: ParsedSourceCacheSources,
@@ -95,11 +94,8 @@ impl ParsedSourceCache {
}
}
- pub fn reset_for_file_watcher(&self) -> Self {
- Self {
- db: self.db.clone(),
- sources: Default::default(),
- }
+ pub fn clear(&self) {
+ self.sources.0.lock().clear();
}
pub fn get_parsed_source_from_esm_module(