summaryrefslogtreecommitdiff
path: root/cli/lsp/cache.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/cache.rs')
-rw-r--r--cli/lsp/cache.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/cli/lsp/cache.rs b/cli/lsp/cache.rs
index eec6433a2..e0034207d 100644
--- a/cli/lsp/cache.rs
+++ b/cli/lsp/cache.rs
@@ -11,6 +11,16 @@ use std::path::Path;
use std::sync::Arc;
use std::time::SystemTime;
+/// In the LSP, we disallow the cache from automatically copying from
+/// the global cache to the local cache for technical reasons.
+///
+/// 1. We need to verify the checksums from the lockfile are correct when
+/// moving from the global to the local cache.
+/// 2. We need to verify the checksums for JSR https specifiers match what
+/// is found in the package's manifest.
+pub const LSP_DISALLOW_GLOBAL_TO_LOCAL_COPY: deno_cache_dir::GlobalToLocalCopy =
+ deno_cache_dir::GlobalToLocalCopy::Disallow;
+
pub fn calculate_fs_version(
cache: &Arc<dyn HttpCache>,
specifier: &ModuleSpecifier,
@@ -123,8 +133,8 @@ impl CacheMetadata {
return None;
}
let cache_key = self.cache.cache_item_key(specifier).ok()?;
- let specifier_metadata = self.cache.read_metadata(&cache_key).ok()??;
- let values = Arc::new(parse_metadata(&specifier_metadata.headers));
+ let headers = self.cache.read_headers(&cache_key).ok()??;
+ let values = Arc::new(parse_metadata(&headers));
let version = calculate_fs_version_in_cache(&self.cache, specifier);
let mut metadata_map = self.metadata.lock();
let metadata = Metadata { values, version };