import { evaluate } from "./ffi/wasm/pkg"; import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; const initialCode = `\ function greet(targetName) { return 'Hello, ' + targetName + '!'; } greet('World') `; const editor = monaco.editor.create( document.getElementsByClassName("textbox")[0], { value: initialCode, language: "javascript", theme: "vs", minimap: { enabled: false, }, }, ); // Fix size of Monaco Editor when window resize window.addEventListener("resize", () => { editor.layout(); }); window.evaluate = evaluate; editor.getModel().onDidChangeContent(inputHandler); inputHandler(); // Evaluate initial code function inputHandler(evt) { const text = editor.getValue(); let p = document.querySelector("p.output"); try { let result = window.evaluate(text); p.textContent = `> ${result}`; } catch (err) { console.error(err); p.innerHTML = `${err}`; } }