mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 10:33:54 +00:00
fix: static import permissions in dynamic imports
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
This commit is contained in:
parent
910935c071
commit
5151afa123
39 changed files with 271 additions and 65 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue