summaryrefslogtreecommitdiff
path: root/cli/program_state.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/program_state.rs
parent910935c07125e4710830be0df32a16c3ef278ba6 (diff)
fix: static import permissions in dynamic imports
Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/program_state.rs')
-rw-r--r--cli/program_state.rs22
1 files changed, 11 insertions, 11 deletions
diff --git a/cli/program_state.rs b/cli/program_state.rs
index 0051e744b..50890b9e4 100644
--- a/cli/program_state.rs
+++ b/cli/program_state.rs
@@ -153,12 +153,14 @@ impl ProgramState {
self: &Arc<Self>,
specifiers: Vec<ModuleSpecifier>,
lib: TypeLib,
- runtime_permissions: Permissions,
+ root_permissions: Permissions,
+ dynamic_permissions: Permissions,
maybe_import_map: Option<ImportMap>,
) -> Result<(), AnyError> {
let handler = Arc::new(Mutex::new(FetchHandler::new(
self,
- runtime_permissions.clone(),
+ root_permissions,
+ dynamic_permissions,
)?));
let mut builder =
@@ -221,19 +223,17 @@ impl ProgramState {
self: &Arc<Self>,
specifier: ModuleSpecifier,
lib: TypeLib,
- mut runtime_permissions: Permissions,
+ root_permissions: Permissions,
+ dynamic_permissions: Permissions,
is_dynamic: bool,
maybe_import_map: Option<ImportMap>,
) -> Result<(), AnyError> {
let specifier = specifier.clone();
- // Workers are subject to the current runtime permissions. We do the
- // permission check here early to avoid "wasting" time building a module
- // graph for a module that cannot be loaded.
- if lib == TypeLib::DenoWorker || lib == TypeLib::UnstableDenoWorker {
- runtime_permissions.check_specifier(&specifier)?;
- }
- let handler =
- Arc::new(Mutex::new(FetchHandler::new(self, runtime_permissions)?));
+ let handler = Arc::new(Mutex::new(FetchHandler::new(
+ self,
+ root_permissions,
+ dynamic_permissions,
+ )?));
let mut builder =
GraphBuilder::new(handler, maybe_import_map, self.lockfile.clone());
builder.add(&specifier, is_dynamic).await?;