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