diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-01-25 18:53:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-25 18:53:16 +0100 |
commit | c824eb5817db675be4d9966a0d1a43d90dfa61fd (patch) | |
tree | 400906eb76f95b3457a15c90baca58ecd193b22f /cli/state.rs | |
parent | 37a7b01d5cf555bbc57d74dc9e04000115ec4867 (diff) |
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
Diffstat (limited to 'cli/state.rs')
-rw-r--r-- | cli/state.rs | 13 |
1 files changed, 8 insertions, 5 deletions
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<ModuleSpecifier, ErrBox> { 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<ModuleSpecifier>, + is_dyn_import: bool, ) -> Pin<Box<deno_core::SourceCodeInfoFuture>> { + 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 |