From c824eb5817db675be4d9966a0d1a43d90dfa61fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 25 Jan 2020 18:53:16 +0100 Subject: refactor: Modules and Loader trait (#3791) * move is_dyn_import argument from Loader::resolve to Loader::load - it was always kind of strange that resolve() checks permissions. * change argument type from &str to &ModuleSpecifier where applicable --- cli/state.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'cli/state.rs') diff --git a/cli/state.rs b/cli/state.rs index 6f3f0a4c7..b224451c5 100644 --- a/cli/state.rs +++ b/cli/state.rs @@ -167,7 +167,6 @@ impl Loader for ThreadSafeState { specifier: &str, referrer: &str, is_main: bool, - is_dyn_import: bool, ) -> Result { if !is_main { if let Some(import_map) = &self.import_map { @@ -180,10 +179,6 @@ impl Loader for ThreadSafeState { let module_specifier = ModuleSpecifier::resolve_import(specifier, referrer)?; - if is_dyn_import { - self.check_dyn_import(&module_specifier)?; - } - Ok(module_specifier) } @@ -192,7 +187,15 @@ impl Loader for ThreadSafeState { &self, module_specifier: &ModuleSpecifier, maybe_referrer: Option, + is_dyn_import: bool, ) -> Pin> { + if is_dyn_import { + if let Err(e) = self.check_dyn_import(&module_specifier) { + return async move { Err(e) }.boxed(); + } + } + + // TODO(bartlomieju): incrementing resolve_count here has no sense... self.metrics.resolve_count.fetch_add(1, Ordering::SeqCst); let module_url_specified = module_specifier.to_string(); let fut = self -- cgit v1.2.3