diff options
Diffstat (limited to 'cli/proc_state.rs')
-rw-r--r-- | cli/proc_state.rs | 22 |
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() { |