diff options
Diffstat (limited to 'cli/cache.rs')
-rw-r--r-- | cli/cache.rs | 107 |
1 files changed, 1 insertions, 106 deletions
diff --git a/cli/cache.rs b/cli/cache.rs index 8f8e1ade1..bdb38e393 100644 --- a/cli/cache.rs +++ b/cli/cache.rs @@ -8,7 +8,6 @@ use deno_core::error::AnyError; use deno_core::futures::FutureExt; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; -use deno_core::serde_json; use deno_core::ModuleSpecifier; use deno_graph::source::CacheInfo; use deno_graph::source::LoadFuture; @@ -40,22 +39,13 @@ pub trait Cacher { ) -> Option<String>; /// Set a value in the cache. fn set( - &mut self, + &self, cache_type: CacheType, specifier: &ModuleSpecifier, value: String, ) -> Result<(), AnyError>; } -/// Combines the cacher trait along with the deno_graph Loader trait to provide -/// a single interface to be able to load and cache modules when building a -/// graph. -pub trait CacherLoader: Cacher + Loader { - fn as_cacher(&self) -> &dyn Cacher; - fn as_mut_loader(&mut self) -> &mut dyn Loader; - fn as_mut_cacher(&mut self) -> &mut dyn Cacher; -} - /// A "wrapper" for the FileFetcher and DiskCache for the Deno CLI that provides /// a concise interface to the DENO_DIR when building module graphs. pub struct FetchCacher { @@ -81,30 +71,6 @@ impl FetchCacher { root_permissions, } } - - fn get_emit_metadata( - &self, - specifier: &ModuleSpecifier, - ) -> Option<EmitMetadata> { - let filename = self - .disk_cache - .get_cache_filename_with_extension(specifier, "meta")?; - let bytes = self.disk_cache.get(&filename).ok()?; - serde_json::from_slice(&bytes).ok() - } - - fn set_emit_metadata( - &self, - specifier: &ModuleSpecifier, - data: EmitMetadata, - ) -> Result<(), AnyError> { - let filename = self - .disk_cache - .get_cache_filename_with_extension(specifier, "meta") - .unwrap(); - let bytes = serde_json::to_vec(&data)?; - self.disk_cache.set(&filename, &bytes).map_err(|e| e.into()) - } } impl Loader for FetchCacher { @@ -172,74 +138,3 @@ impl Loader for FetchCacher { .boxed() } } - -impl Cacher for FetchCacher { - fn get( - &self, - cache_type: CacheType, - specifier: &ModuleSpecifier, - ) -> Option<String> { - let extension = match cache_type { - CacheType::Emit => "js", - CacheType::SourceMap => "js.map", - CacheType::TypeScriptBuildInfo => "buildinfo", - CacheType::Version => { - return self.get_emit_metadata(specifier).map(|d| d.version_hash) - } - }; - let filename = self - .disk_cache - .get_cache_filename_with_extension(specifier, extension)?; - self - .disk_cache - .get(&filename) - .ok() - .and_then(|b| String::from_utf8(b).ok()) - } - - fn set( - &mut self, - cache_type: CacheType, - specifier: &ModuleSpecifier, - value: String, - ) -> Result<(), AnyError> { - let extension = match cache_type { - CacheType::Emit => "js", - CacheType::SourceMap => "js.map", - CacheType::TypeScriptBuildInfo => "buildinfo", - CacheType::Version => { - let data = if let Some(mut data) = self.get_emit_metadata(specifier) { - data.version_hash = value; - data - } else { - EmitMetadata { - version_hash: value, - } - }; - return self.set_emit_metadata(specifier, data); - } - }; - let filename = self - .disk_cache - .get_cache_filename_with_extension(specifier, extension) - .unwrap(); - self - .disk_cache - .set(&filename, value.as_bytes()) - .map_err(|e| e.into()) - } -} - -impl CacherLoader for FetchCacher { - fn as_cacher(&self) -> &dyn Cacher { - self - } - - fn as_mut_loader(&mut self) -> &mut dyn Loader { - self - } - - fn as_mut_cacher(&mut self) -> &mut dyn Cacher { - self - } -} |