mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-20 08:01:35 +00:00
3f68e3a58e
* refactor: isolate deno_core into windmill-runtime-nativets subcrate Remove deno_core from flow eval and isolate nativets V8 runtime into a dedicated subcrate so deno_core compilation no longer blocks windmill-worker or windmill-api. - Create windmill-jseval crate: QuickJS-based JS eval for flow expressions and batch rerun, extracted from windmill-worker - Create windmill-runtime-nativets crate: all deno_core/V8 deps and nativets script execution, with build.rs snapshot generation - Simplify windmill-worker: remove all deno_* direct deps, empty build.rs, gate nativets behind optional dep - Update windmill-api: use windmill-jseval for batch rerun instead of deno_core, remove deno_core feature entirely - Add nativets integration tests (nativets_jobs.rs) and parallel stress test (nativets_stress.rs, 8 workers x 200 jobs) - Remove dead code: deno flow eval path, USE_QUICKJS env var, parity tests (replaced with 63 standalone expected-value tests) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address PR review feedback for deno_core isolation - Deduplicate unsafe_raw() into windmill-common/src/utils.rs (single source) - Delete orphaned runtime.js and windmill-client.js from windmill-worker/src/ - Fix operator precedence in windmill-jseval with explicit parentheses - Remove unnecessary return keyword in heap limit callback - Remove redundant as usize casts - Remove ~150 lines of commented-out code from runtime.js - Remove commented-out #[cfg] in build.rs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * otel ee --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
63 lines
2.6 KiB
JavaScript
63 lines
2.6 KiB
JavaScript
import * as abortSignal from "ext:deno_web/03_abort_signal.js";
|
|
import * as base64 from "ext:deno_web/05_base64.js";
|
|
import * as console from "ext:deno_console/01_console.js";
|
|
import * as encoding from "ext:deno_web/08_text_encoding.js";
|
|
import * as event from "ext:deno_web/02_event.js";
|
|
import * as fetch from "ext:deno_fetch/26_fetch.js";
|
|
import * as file from "ext:deno_web/09_file.js";
|
|
import * as fileReader from "ext:deno_web/10_filereader.js";
|
|
import * as formData from "ext:deno_fetch/21_formdata.js";
|
|
import * as headers from "ext:deno_fetch/20_headers.js";
|
|
import * as streams from "ext:deno_web/06_streams.js";
|
|
import * as timers from "ext:deno_web/02_timers.js";
|
|
import * as url from "ext:deno_url/00_url.js";
|
|
import * as net from "ext:deno_net/01_net.js";
|
|
import * as tls from "ext:deno_net/02_tls.js";
|
|
import * as urlPattern from "ext:deno_url/01_urlpattern.js";
|
|
import * as webidl from "ext:deno_webidl/00_webidl.js";
|
|
import * as response from "ext:deno_fetch/23_response.js";
|
|
import * as request from "ext:deno_fetch/23_request.js";
|
|
import "ext:deno_web/02_structured_clone.js";
|
|
import "ext:deno_web/04_global_interfaces.js";
|
|
import "ext:deno_web/13_message_port.js";
|
|
import "ext:deno_web/14_compression.js";
|
|
import "ext:deno_web/15_performance.js";
|
|
import "ext:deno_web/16_image_data.js";
|
|
import "ext:deno_fetch/27_eventsource.js";
|
|
|
|
globalThis.atob = base64.atob;
|
|
globalThis.btoa = base64.btoa;
|
|
globalThis.fetch = fetch.fetch;
|
|
globalThis.Request = request.Request;
|
|
globalThis.Response = response.Response;
|
|
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)
|
|
);
|
|
globalThis.AbortController = abortSignal.AbortController;
|
|
globalThis.AbortSignal = abortSignal.AbortSignal;
|
|
|
|
Object.assign(globalThis, {
|
|
clearInterval: timers.clearInterval,
|
|
clearTimeout: timers.clearTimeout,
|
|
setInterval: timers.setInterval,
|
|
setTimeout: timers.setTimeout,
|
|
});
|
|
|
|
// Expose bootstrapOtel globally so it can be called from Rust after runtime creation.
|
|
// We use dynamic import so deno_telemetry isn't loaded during snapshot creation.
|
|
// Config: [tracingEnabled, metricsEnabled, consoleConfig, deterministic]
|
|
// consoleConfig: 0=ignore, 1=capture, 2=replace
|
|
globalThis.__bootstrapOtel = () => {
|
|
import("ext:deno_telemetry/telemetry.ts").then(({ bootstrap, enterSpan }) => {
|
|
bootstrap([1, 0, 1, 0]);
|
|
// Expose enterSpan for setting parent trace context
|
|
globalThis.__enterSpan = enterSpan;
|
|
});
|
|
};
|