From 65e72b68acf57da8462b8e7b057e7adb9393b698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 11 Dec 2020 18:49:26 +0100 Subject: 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. --- cli/ops/runtime.rs | 39 ++------------------------------------- 1 file changed, 2 insertions(+), 37 deletions(-) (limited to 'cli/ops/runtime.rs') 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::(main_module); - state.put::(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 { - let apply_source_maps = *state.borrow::(); - 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: -- cgit v1.2.3