From 895609f0d2fc2dc9aeb70eb0a4ec620132eea55d Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 24 Mar 2023 12:54:20 +0100 Subject: [PATCH] fix backend compile --- backend/parsers/windmill-parser-ts/src/lib.rs | 2 +- backend/windmill-worker/src/js_eval.rs | 83 ++++++++++--------- 2 files changed, 47 insertions(+), 38 deletions(-) diff --git a/backend/parsers/windmill-parser-ts/src/lib.rs b/backend/parsers/windmill-parser-ts/src/lib.rs index ec2b382d01..a01445f60e 100644 --- a/backend/parsers/windmill-parser-ts/src/lib.rs +++ b/backend/parsers/windmill-parser-ts/src/lib.rs @@ -246,7 +246,7 @@ fn tstype_to_typ(ts_type: &TsType) -> (Typ, bool) { pub fn eval_sync(code: &str) -> Result { let mut context = JsRuntime::new(RuntimeOptions::default()); let code = format!("let x = {}; x", code); - let res = context.execute_script("", &code); + let res = context.execute_script("", code); match res { Ok(global) => { let scope = &mut context.handle_scope(); diff --git a/backend/windmill-worker/src/js_eval.rs b/backend/windmill-worker/src/js_eval.rs index e6ceb93ba0..51c6486065 100644 --- a/backend/windmill-worker/src/js_eval.rs +++ b/backend/windmill-worker/src/js_eval.rs @@ -6,21 +6,21 @@ * LICENSE-AGPL for a copy of the license. */ -use std::{collections::HashMap, cell::RefCell, rc::Rc}; +use std::{cell::RefCell, collections::HashMap, rc::Rc}; -use deno_core::{op, serde_v8, v8, v8::IsolateHandle, Extension, JsRuntime, RuntimeOptions, OpState}; +use deno_core::{ + op, serde_v8, v8, v8::IsolateHandle, Extension, JsRuntime, OpState, RuntimeOptions, +}; use itertools::Itertools; use lazy_static::lazy_static; use regex::Regex; use serde_json::Value; -use tokio::{sync::{oneshot}, time::timeout}; +use tokio::{sync::oneshot, time::timeout}; use uuid::Uuid; use windmill_common::{error::Error, flow_status::JobResult}; use crate::AuthedClient; - - #[derive(Debug, Clone)] pub struct IdContext { pub flow_job: Uuid, @@ -91,13 +91,7 @@ pub async fn eval_timeout( let expr = replace_with_await_result(expr); - let r = runtime.block_on(eval( - &mut js_runtime, - &expr, - env, - by_id, - has_client, - ))?; + let r = runtime.block_on(eval(&mut js_runtime, &expr, env, by_id, has_client))?; Ok(r) as anyhow::Result }), @@ -258,7 +252,7 @@ async function resource(path) {{ .join(""), ); tracing::debug!("{}", code); - let global = context.execute_script("", &code)?; + let global = context.execute_script("", code)?; let global = context.resolve_value(global).await?; let scope = &mut context.handle_scope(); @@ -280,11 +274,17 @@ async function resource(path) {{ // TODO: Can we a) share the api configuration here somehow or b) just implement this natively in deno, via the deno client? #[op] -async fn op_variable(op_state: Rc>, args: Vec) -> Result { +async fn op_variable( + op_state: Rc>, + args: Vec, +) -> Result { let path = &args[0]; let client = op_state.borrow().borrow::().0.clone(); - if let Some(client) = client { - let result = client.get_client().get_variable(&client.workspace, path, None).await?; + if let Some(client) = client { + let result = client + .get_client() + .get_variable(&client.workspace, path, None) + .await?; Ok(result.into_inner().value.unwrap_or_else(|| "".to_owned())) } else { anyhow::bail!("No client found in op state"); @@ -292,34 +292,39 @@ async fn op_variable(op_state: Rc>, args: Vec) -> Resul } #[op] -async fn op_get_result(op_state: Rc>, args: Vec) -> Result { - let id = &args[0]; +async fn op_get_result( + op_state: Rc>, + args: Vec, +) -> Result { + let id = &args[0]; let client = op_state.borrow().borrow::().0.clone(); - if let Some(client) = client { + if let Some(client) = client { let result = client - .get_client() - .get_completed_job_result(&client.workspace, &id.parse()?) - .await? - .clone(); - Ok(serde_json::json!(result)) + .get_client() + .get_completed_job_result(&client.workspace, &id.parse()?) + .await? + .clone(); + Ok(serde_json::json!(result)) } else { anyhow::bail!("No client found in op state"); } - } #[op] -async fn op_get_id(op_state: Rc>, args: Vec) -> Result, anyhow::Error> { +async fn op_get_id( + op_state: Rc>, + args: Vec, +) -> Result, anyhow::Error> { let flow_job_id = &args[0]; let node_id = &args[1]; let client = op_state.borrow().borrow::().0.clone(); - if let Some(client) = client { + if let Some(client) = client { let result = client - .get_client() - .result_by_id(&client.workspace, flow_job_id, node_id) - .await - .map_or(None, |e| Some(e.into_inner())); + .get_client() + .result_by_id(&client.workspace, flow_job_id, node_id) + .await + .map_or(None, |e| Some(e.into_inner())); Ok(result) } else { anyhow::bail!("No client found in op state"); @@ -327,12 +332,18 @@ async fn op_get_id(op_state: Rc>, args: Vec) -> Result< } #[op] -async fn op_resource(op_state: Rc>, args: Vec) -> Result { - let path = &args[0]; +async fn op_resource( + op_state: Rc>, + args: Vec, +) -> Result { + let path = &args[0]; let client = op_state.borrow().borrow::().0.clone(); - if let Some(client) = client { - let result = client.get_client().get_resource(&client.workspace, path).await?; + if let Some(client) = client { + let result = client + .get_client() + .get_resource(&client.workspace, path) + .await?; Ok(result .into_inner() .value @@ -340,8 +351,6 @@ async fn op_resource(op_state: Rc>, args: Vec) -> Resul } else { anyhow::bail!("No client found in op state"); } - - } #[cfg(test)]