1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00

refactor(cli/ops): don't pass ops through json (#10629)

This commit is contained in:
Casper Beyer 2021-05-14 20:25:50 +08:00 committed by GitHub
parent 608c7d68e2
commit b0e30dbbc6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,9 +2,6 @@ use crate::tools::test_runner::TestEvent;
use crate::tools::test_runner::TestMessage; use crate::tools::test_runner::TestMessage;
use deno_core::error::generic_error; use deno_core::error::generic_error;
use deno_core::error::AnyError; use deno_core::error::AnyError;
use deno_core::serde_json;
use deno_core::serde_json::json;
use deno_core::serde_json::Value;
use deno_core::JsRuntime; use deno_core::JsRuntime;
use deno_core::ModuleSpecifier; use deno_core::ModuleSpecifier;
use deno_core::OpState; use deno_core::OpState;
@ -30,17 +27,15 @@ struct PermissionsHolder(Uuid, Permissions);
pub fn op_pledge_test_permissions( pub fn op_pledge_test_permissions(
state: &mut OpState, state: &mut OpState,
args: Value, args: PermissionsArg,
_: (), _: (),
) -> Result<Uuid, AnyError> { ) -> Result<Uuid, AnyError> {
deno_runtime::ops::check_unstable(state, "Deno.test.permissions"); deno_runtime::ops::check_unstable(state, "Deno.test.permissions");
let token = Uuid::new_v4(); let token = Uuid::new_v4();
let parent_permissions = state.borrow::<Permissions>().clone(); let parent_permissions = state.borrow::<Permissions>().clone();
let worker_permissions = { let worker_permissions =
let permissions: PermissionsArg = serde_json::from_value(args)?; create_worker_permissions(parent_permissions.clone(), args)?;
create_worker_permissions(parent_permissions.clone(), permissions)?
};
state.put::<PermissionsHolder>(PermissionsHolder(token, parent_permissions)); state.put::<PermissionsHolder>(PermissionsHolder(token, parent_permissions));
@ -78,10 +73,9 @@ struct PostTestMessageArgs {
fn op_post_test_message( fn op_post_test_message(
state: &mut OpState, state: &mut OpState,
args: Value, args: PostTestMessageArgs,
_: (), _: (),
) -> Result<Value, AnyError> { ) -> Result<bool, AnyError> {
let args: PostTestMessageArgs = serde_json::from_value(args)?;
let origin = state.borrow::<ModuleSpecifier>().to_string(); let origin = state.borrow::<ModuleSpecifier>().to_string();
let message = args.message; let message = args.message;
@ -90,8 +84,8 @@ fn op_post_test_message(
let sender = state.borrow::<Sender<TestEvent>>().clone(); let sender = state.borrow::<Sender<TestEvent>>().clone();
if sender.send(event).is_err() { if sender.send(event).is_err() {
Ok(json!(false)) Ok(false)
} else { } else {
Ok(json!(true)) Ok(true)
} }
} }