mirror of
https://github.com/denoland/deno.git
synced 2025-07-24 13:44:08 +00:00
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.
This commit is contained in:
parent
a411144219
commit
136dce67ce
33 changed files with 1506 additions and 1285 deletions
15
cli/cache/caches.rs
vendored
15
cli/cache/caches.rs
vendored
|
@ -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 {
|
||||
|
|
8
cli/cache/parsed_source.rs
vendored
8
cli/cache/parsed_source.rs
vendored
|
@ -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(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue