diff --git a/backend/windmill-worker/src/js_eval.rs b/backend/windmill-worker/src/js_eval.rs index 25703f943b..70966d7e09 100644 --- a/backend/windmill-worker/src/js_eval.rs +++ b/backend/windmill-worker/src/js_eval.rs @@ -683,8 +683,8 @@ import("file:///eval.ts").then((module) => module.main(...args)).then(JSON.strin let local = v8::Local::new(scope, global); // Deserialize a `v8` object into a Rust type using `serde_v8`, // in this case deserialize to a JSON `Value`. - let r = serde_v8::from_v8::(scope, local)?; - Ok(unsafe_raw(r)) + let r = serde_v8::from_v8::>(scope, local)?; + Ok(unsafe_raw(r.unwrap_or_else(|| "null".to_string()))) } #[op] diff --git a/backend/windmill-worker/src/runtime.js b/backend/windmill-worker/src/runtime.js index 3bcd520025..8a23dc89a9 100644 --- a/backend/windmill-worker/src/runtime.js +++ b/backend/windmill-worker/src/runtime.js @@ -22,10 +22,15 @@ import "ext:deno_web/13_message_port.js"; import "ext:deno_web/14_compression.js"; import "ext:deno_web/15_performance.js"; +globalThis.atob = base64.atob; +globalThis.btoa = base64.btoa; globalThis.fetch = fetch.fetch; globalThis.Request = request.Request; globalThis.Blob = file.Blob; globalThis.URL = url.URL; +globalThis.FormData = formData.FormData; +globalThis.URLSearchParams = url.URLSearchParams; +globalThis.Headers = headers.Headers; globalThis.FileReader = fileReader.FileReader; globalThis.console = new console.Console((msg, level) => globalThis.Deno.core.ops.op_log([msg])