summaryrefslogtreecommitdiff
path: root/cli/module_graph.rs
diff options
context:
space:
mode:
authorLuca Casonato <lucacasonato@yahoo.com>2021-05-17 09:44:38 +0200
committerLuca Casonato <lucacasonato@yahoo.com>2021-05-17 09:45:54 +0200
commit5151afa123a9635d2f4de9555f8843460b284a11 (patch)
tree7c4686c3f5562dc27d8b863897225236aeb97b14 /cli/module_graph.rs
parent910935c07125e4710830be0df32a16c3ef278ba6 (diff)
fix: static import permissions in dynamic imports
Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/module_graph.rs')
-rw-r--r--cli/module_graph.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/cli/module_graph.rs b/cli/module_graph.rs
index a70a124a7..1ca738977 100644
--- a/cli/module_graph.rs
+++ b/cli/module_graph.rs
@@ -1775,7 +1775,7 @@ impl GraphBuilder {
}
Some(Ok(cached_module)) => {
let is_root = &cached_module.specifier == specifier;
- self.visit(cached_module, is_root)?;
+ self.visit(cached_module, is_root, is_dynamic)?;
}
_ => {}
}
@@ -1823,6 +1823,7 @@ impl GraphBuilder {
&mut self,
cached_module: CachedModule,
is_root: bool,
+ is_root_dynamic: bool,
) -> Result<(), AnyError> {
let specifier = cached_module.specifier.clone();
let requested_specifier = cached_module.requested_specifier.clone();
@@ -1859,14 +1860,22 @@ impl GraphBuilder {
for (_, dep) in module.dependencies.iter() {
let maybe_referrer = Some(dep.location.clone());
if let Some(specifier) = dep.maybe_code.as_ref() {
- self.fetch(specifier, &maybe_referrer, dep.is_dynamic);
+ self.fetch(
+ specifier,
+ &maybe_referrer,
+ is_root_dynamic || dep.is_dynamic,
+ );
}
if let Some(specifier) = dep.maybe_type.as_ref() {
- self.fetch(specifier, &maybe_referrer, dep.is_dynamic);
+ self.fetch(
+ specifier,
+ &maybe_referrer,
+ is_root_dynamic || dep.is_dynamic,
+ );
}
}
if let Some((_, specifier)) = module.maybe_types.as_ref() {
- self.fetch(specifier, &None, false);
+ self.fetch(specifier, &None, is_root_dynamic);
}
if specifier != requested_specifier {
self