diff options
Diffstat (limited to 'cli/proc_state.rs')
-rw-r--r-- | cli/proc_state.rs | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/cli/proc_state.rs b/cli/proc_state.rs index 2c61ba51f..48dc335f0 100644 --- a/cli/proc_state.rs +++ b/cli/proc_state.rs @@ -36,6 +36,7 @@ use deno_tls::rustls_native_certs::load_native_certs; use deno_tls::webpki_roots::TLS_SERVER_ROOTS; use import_map::ImportMap; use log::debug; +use log::info; use log::warn; use std::collections::HashMap; use std::collections::HashSet; @@ -182,7 +183,7 @@ impl ProcState { None }; - let maybe_import_map: Option<ImportMap> = + let mut maybe_import_map: Option<ImportMap> = match flags.import_map_path.as_ref() { None => None, Some(import_map_url) => { @@ -204,6 +205,32 @@ impl ProcState { } }; + if flags.compat { + let mut import_map = match maybe_import_map { + Some(import_map) => import_map, + None => { + // INFO: we're creating an empty import map, with its specifier pointing + // to `CWD/node_import_map.json` to make sure the map still works as expected. + let import_map_specifier = + std::env::current_dir()?.join("node_import_map.json"); + ImportMap::from_json(import_map_specifier.to_str().unwrap(), "{}") + .unwrap() + } + }; + let node_builtins = crate::compat::get_mapped_node_builtins(); + let diagnostics = import_map.update_imports(node_builtins)?; + + if !diagnostics.is_empty() { + info!("Some Node built-ins were not added to the import map:"); + for diagnostic in diagnostics { + info!(" - {}", diagnostic); + } + info!("If you want to use Node built-ins provided by Deno remove listed specifiers from \"imports\" mapping in the import map file."); + } + + maybe_import_map = Some(import_map); + } + let maybe_inspect_host = flags.inspect.or(flags.inspect_brk); let maybe_inspector_server = maybe_inspect_host.map(|host| { Arc::new(InspectorServer::new(host, version::get_user_agent())) |