cmd/wasm/assets/index.js (73 lines of code) (raw):

const CEL_PROGRAM_DEFAULT_VALUE = `// Example CEL program get(state.url).Body.as(body, { "events": [body.decode_json()] }) `; class CelFormatter { constructor(wasmUrl) { this.wasmUrl = wasmUrl; this.go = new globalThis.Go(); this.init(); } async init() { if (!WebAssembly.instantiateStreaming) { WebAssembly.instantiateStreaming = async (resp, importObject) => { const source = await (await resp).arrayBuffer(); return await WebAssembly.instantiate(source, importObject); }; } try { const result = await WebAssembly.instantiateStreaming(fetch(this.wasmUrl), this.go.importObject); this.go.run(result.instance); this.setVersionMetadata(); this.setupUI(); } catch (err) { console.error("Failed to load WebAssembly module:", err); } } setVersionMetadata() { const metadata = celModuleBuildMetadata(); console.log("celfmt build metadata:", metadata); // Git commit. if (metadata.commit) { let a = document.getElementById("celfmt-version-link"); a.innerHTML = metadata.commit.substring(0, 7); a.href = "https://github.com/elastic/celfmt/commits/" + metadata.commit; } // elastic/mito release. if (metadata.mito) { let a = document.getElementById("mito-version-link"); a.innerHTML = metadata.mito; a.href = "https://pkg.go.dev/github.com/elastic/mito@" + metadata.mito } // google/cel-go release. if (metadata["cel-go"]) { let a = document.getElementById("cel-go-version-link"); a.innerHTML = metadata["cel-go"]; a.href = "https://pkg.go.dev/github.com/google/cel-go@" + metadata["cel-go"]; } // Go version. if (metadata.go) { let a = document.getElementById("go-version-link"); a.innerHTML = metadata.go; a.href = "https://pkg.go.dev/std@go" + metadata.go } } setupUI() { const button = document.getElementById("button"); if (button) { button.disabled = false; button.classList.add("enabled"); button.onclick = () => this.applyCelFmt(); } document.getElementById("input").value = CEL_PROGRAM_DEFAULT_VALUE; } applyCelFmt() { const inputSource = document.getElementById("input").value; const result = celFmt(inputSource); if (result.error) { document.getElementById('output').value = `‼️ ERROR\n${result.error}`; } else if (inputSource === result.formatted) { document.getElementById('output').value = "✅ CEL program is already formatted."; } else { document.getElementById('output').value = result.formatted; } } } window.celFormatter = new CelFormatter("celfmt.wasm");