From 8a7e1c616d12feb93ed3fda4a70228924c747b5c Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Mon, 31 May 2021 01:20:34 +0100 Subject: fix(cli): Don't statically error on dynamic unmapped bare specifiers (#10618) Fixes #10168 Fixes #10615 Fixes #10616 --- cli/module_graph.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'cli/module_graph.rs') diff --git a/cli/module_graph.rs b/cli/module_graph.rs index 368df0a74..5bfa52e89 100644 --- a/cli/module_graph.rs +++ b/cli/module_graph.rs @@ -12,6 +12,7 @@ use crate::config_file::IgnoredCompilerOptions; use crate::config_file::TsConfig; use crate::diagnostics::Diagnostics; use crate::import_map::ImportMap; +use crate::import_map::ImportMapError; use crate::info; use crate::lockfile::Lockfile; use crate::media_type::MediaType; @@ -397,10 +398,13 @@ impl Module { Ok(specifier) => Some(specifier), Err(any_error) => { match any_error.downcast_ref::() { - Some(ModuleResolutionError::ImportPrefixMissing(_, _)) => None, - _ => { - return Err(any_error); - } + Some(ModuleResolutionError::ImportPrefixMissing(..)) => None, + _ => match any_error.downcast_ref::() { + Some(ImportMapError::UnmappedBareSpecifier(..)) => None, + _ => { + return Err(any_error); + } + }, } } }; @@ -447,10 +451,8 @@ impl Module { ) -> Result { let maybe_resolve = if let Some(import_map) = self.maybe_import_map.clone() { - import_map - .lock() - .unwrap() - .resolve(specifier, self.specifier.as_str())? + let import_map = import_map.lock().unwrap(); + Some(import_map.resolve(specifier, self.specifier.as_str())?) } else { None }; -- cgit v1.2.3