summaryrefslogtreecommitdiff
path: root/cli/cache.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/cache.rs')
-rw-r--r--cli/cache.rs107
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
- }
-}