summaryrefslogtreecommitdiff
path: root/cli/worker.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-11-02 23:37:55 +0100
committerGitHub <noreply@github.com>2020-11-02 23:37:55 +0100
commitc3dd19c5d37a9c0801857669b59bd708a5bb0a71 (patch)
tree01b65494d5fada50a76a5b96609bdfddabdc5f5b /cli/worker.rs
parent43d4978ceabb9d5879ab8d86bbf0f1ee551f9500 (diff)
refactor(cli): remove ProgramState::permissions (#8228)
This commit removes ProgramState::permissions field. Having permissions parsed from CLI flags stored on globally accessible state object made it easy to mistakenly use these permissions in situations which required "runtime" permissions.
Diffstat (limited to 'cli/worker.rs')
-rw-r--r--cli/worker.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/cli/worker.rs b/cli/worker.rs
index a8722e7a4..a09e96ce4 100644
--- a/cli/worker.rs
+++ b/cli/worker.rs
@@ -253,6 +253,7 @@ impl MainWorker {
pub fn new(
program_state: &Arc<ProgramState>,
main_module: ModuleSpecifier,
+ permissions: Permissions,
) -> Self {
let loader = CliModuleLoader::new(program_state.maybe_import_map.clone());
let mut worker = Worker::new(
@@ -270,7 +271,7 @@ impl MainWorker {
let mut op_state = op_state.borrow_mut();
op_state.put::<Metrics>(Default::default());
op_state.put::<Arc<ProgramState>>(program_state.clone());
- op_state.put::<Permissions>(program_state.permissions.clone());
+ op_state.put::<Permissions>(permissions);
}
ops::runtime::init(js_runtime, main_module);
@@ -600,9 +601,10 @@ mod tests {
},
..Default::default()
};
+ let permissions = Permissions::from_flags(&flags);
let program_state =
ProgramState::mock(vec!["deno".to_string()], Some(flags));
- MainWorker::new(&program_state, main_module)
+ MainWorker::new(&program_state, main_module, permissions)
}
#[tokio::test]