diff options
| author | Kitson Kelly <me@kitsonkelly.com> | 2020-12-30 15:17:17 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-30 15:17:17 +1100 |
| commit | 8011eced141e7bf0e1eac334daf326bd49504748 (patch) | |
| tree | 3d2bdd36cc4f19285ba5292b9946cdabf466d25b /cli/lsp/sources.rs | |
| parent | e8a81724bb3b3767edaddbe78edc52108ae78b5f (diff) | |
feat(lsp): add cache command (#8911)
Diffstat (limited to 'cli/lsp/sources.rs')
| -rw-r--r-- | cli/lsp/sources.rs | 20 |
1 files changed, 20 insertions, 0 deletions
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<ImportMap>, +) -> 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<HashMap<String, analysis::Dependency>>, |
