summaryrefslogtreecommitdiff
path: root/cli/proc_state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/proc_state.rs')
-rw-r--r--cli/proc_state.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/cli/proc_state.rs b/cli/proc_state.rs
index 253878872..6e8507810 100644
--- a/cli/proc_state.rs
+++ b/cli/proc_state.rs
@@ -51,6 +51,7 @@ use deno_runtime::deno_web::BlobStore;
use deno_runtime::inspector_server::InspectorServer;
use deno_runtime::permissions::Permissions;
use import_map::ImportMap;
+use log::warn;
use std::collections::HashSet;
use std::env;
use std::fs::File;
@@ -230,7 +231,7 @@ impl ProcState {
import_map_specifier
))?;
let import_map =
- ImportMap::from_json(import_map_specifier.as_str(), &file.source)?;
+ import_map_from_text(&import_map_specifier, &file.source)?;
Some(Arc::new(import_map))
}
};
@@ -676,6 +677,25 @@ impl SourceMapGetter for ProcState {
}
}
+pub fn import_map_from_text(
+ specifier: &Url,
+ json_text: &str,
+) -> Result<ImportMap, AnyError> {
+ let result = ImportMap::from_json_with_diagnostics(specifier, json_text)?;
+ if !result.diagnostics.is_empty() {
+ warn!(
+ "Import map diagnostics:\n{}",
+ result
+ .diagnostics
+ .into_iter()
+ .map(|d| format!(" - {}", d))
+ .collect::<Vec<_>>()
+ .join("\n")
+ )
+ }
+ Ok(result.import_map)
+}
+
fn source_map_from_code(code: String) -> Option<Vec<u8>> {
let lines: Vec<&str> = code.split('\n').collect();
if let Some(last_line) = lines.last() {