From 8011eced141e7bf0e1eac334daf326bd49504748 Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Wed, 30 Dec 2020 15:17:17 +1100 Subject: feat(lsp): add cache command (#8911) --- cli/lsp/sources.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'cli/lsp/sources.rs') diff --git a/cli/lsp/sources.rs b/cli/lsp/sources.rs index c6ab87f21..5ef16a876 100644 --- a/cli/lsp/sources.rs +++ b/cli/lsp/sources.rs @@ -10,16 +10,36 @@ use crate::http_cache; use crate::http_cache::HttpCache; use crate::import_map::ImportMap; use crate::media_type::MediaType; +use crate::module_graph::GraphBuilder; +use crate::program_state::ProgramState; +use crate::specifier_handler::FetchHandler; use crate::text_encoding; +use crate::Permissions; +use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::ModuleSpecifier; use std::collections::HashMap; use std::fs; use std::path::Path; use std::path::PathBuf; +use std::sync::Arc; +use std::sync::Mutex; use std::time::SystemTime; +pub async fn cache( + specifier: ModuleSpecifier, + maybe_import_map: Option, +) -> Result<(), AnyError> { + let program_state = Arc::new(ProgramState::new(Default::default())?); + let handler = Arc::new(Mutex::new(FetchHandler::new( + &program_state, + Permissions::allow_all(), + )?)); + let mut builder = GraphBuilder::new(handler, maybe_import_map, None); + builder.add(&specifier, false).await +} + #[derive(Debug, Clone, Default)] struct Metadata { dependencies: Option>, -- cgit v1.2.3