diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-12-11 18:49:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-11 18:49:26 +0100 |
commit | 65e72b68acf57da8462b8e7b057e7adb9393b698 (patch) | |
tree | 00e955e1186b9512b009acbb6ee80feb8a3f1733 /cli/ops/runtime.rs | |
parent | 9414dee9e56a9f42c07ada4f8e1be864a1a1b936 (diff) |
refactor(cli): decouple ops from ProgramState and Flags (#8659)
This commit does major refactor of "Worker" and "WebWorker",
in order to decouple them from "ProgramState" and "Flags".
The main points of interest are "create_main_worker()" and
"create_web_worker_callback()" functions which are responsible
for creating "Worker" and "WebWorker" in CLI context.
As a result it is now possible to factor out common "runtime"
functionality into a separate crate.
Diffstat (limited to 'cli/ops/runtime.rs')
-rw-r--r-- | cli/ops/runtime.rs | 39 |
1 files changed, 2 insertions, 37 deletions
diff --git a/cli/ops/runtime.rs b/cli/ops/runtime.rs index 38b23f3b3..cb3b53d53 100644 --- a/cli/ops/runtime.rs +++ b/cli/ops/runtime.rs @@ -1,9 +1,7 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. -use crate::colors; use crate::metrics::Metrics; use crate::permissions::Permissions; -use crate::version; use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::serde_json::json; @@ -11,50 +9,17 @@ use deno_core::serde_json::Value; use deno_core::ModuleSpecifier; use deno_core::OpState; use deno_core::ZeroCopyBuf; -use std::env; -type ApplySourceMaps = bool; - -pub fn init( - rt: &mut deno_core::JsRuntime, - main_module: ModuleSpecifier, - apply_source_maps: bool, -) { +pub fn init(rt: &mut deno_core::JsRuntime, main_module: ModuleSpecifier) { { let op_state = rt.op_state(); let mut state = op_state.borrow_mut(); state.put::<ModuleSpecifier>(main_module); - state.put::<ApplySourceMaps>(apply_source_maps); } - super::reg_json_sync(rt, "op_start", op_start); super::reg_json_sync(rt, "op_main_module", op_main_module); super::reg_json_sync(rt, "op_metrics", op_metrics); } -fn op_start( - state: &mut OpState, - _args: Value, - _zero_copy: &mut [ZeroCopyBuf], -) -> Result<Value, AnyError> { - let apply_source_maps = *state.borrow::<ApplySourceMaps>(); - let gs = &super::program_state(state); - - Ok(json!({ - "args": gs.flags.argv.clone(), - "applySourceMaps": apply_source_maps, - "debugFlag": gs.flags.log_level.map_or(false, |l| l == log::Level::Debug), - "denoVersion": version::deno(), - "noColor": !colors::use_color(), - "pid": std::process::id(), - "ppid": ppid(), - "target": env!("TARGET"), - "tsVersion": version::TYPESCRIPT, - "unstableFlag": gs.flags.unstable, - "v8Version": version::v8(), - "versionFlag": gs.flags.version, - })) -} - fn op_main_module( state: &mut OpState, _args: Value, @@ -93,7 +58,7 @@ fn op_metrics( })) } -fn ppid() -> Value { +pub fn ppid() -> Value { #[cfg(windows)] { // Adopted from rustup: |