diff options
Diffstat (limited to 'cli/lsp/sources.rs')
-rw-r--r-- | cli/lsp/sources.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/cli/lsp/sources.rs b/cli/lsp/sources.rs index 4f80044a2..c6a15461f 100644 --- a/cli/lsp/sources.rs +++ b/cli/lsp/sources.rs @@ -7,6 +7,7 @@ use crate::file_fetcher::get_source_from_bytes; use crate::file_fetcher::map_content_type; use crate::http_cache; use crate::http_cache::HttpCache; +use crate::import_map::ImportMap; use crate::media_type::MediaType; use crate::text_encoding; @@ -16,6 +17,8 @@ use std::collections::HashMap; use std::fs; use std::path::Path; use std::path::PathBuf; +use std::sync::Arc; +use std::sync::RwLock; use std::time::SystemTime; #[derive(Debug, Clone, Default)] @@ -30,6 +33,7 @@ struct Metadata { #[derive(Debug, Clone, Default)] pub struct Sources { http_cache: HttpCache, + maybe_import_map: Option<Arc<RwLock<ImportMap>>>, metadata: HashMap<ModuleSpecifier, Metadata>, redirects: HashMap<ModuleSpecifier, ModuleSpecifier>, remotes: HashMap<ModuleSpecifier, PathBuf>, @@ -124,7 +128,11 @@ impl Sources { if let Ok(source) = get_source_from_bytes(bytes, maybe_charset) { let mut maybe_types = if let Some(types) = headers.get("x-typescript-types") { - Some(analysis::resolve_import(types, &specifier, None)) + Some(analysis::resolve_import( + types, + &specifier, + self.maybe_import_map.clone(), + )) } else { None }; |