// An app made with Create, as its exported page runs it: the program (app.oui) parsed by // wai-app's WebAssembly build, rendered by the same widgets Create renders, its room on the // room service behind this page's origin, every action sealed into the page's log. import { openSession } from "./session.js"; import { Renderer } from "./renderer.js"; import { components, context } from "./components.js"; const main = document.getElementById("wai-app"); const session = await openSession(); const program = await (await fetch(main.dataset.program, { cache: "no-store" })).text(); session.push(program); const snap = session.finish(); const ctx = context({ session, service: main.dataset.service, frame: main.dataset.frame }); const renderer = new Renderer(main, components, ctx); renderer.render(snap); const bad = snap.errors.filter((e) => !e.warning); if (bad.length) { const p = document.createElement("pre"); p.className = "wai-problems"; p.textContent = bad.map((e) => `app.oui line ${e.line}: ${e.message} (${e.code})`).join("\n"); main.after(p); } window.appTest = { session, ctx, renderer, snapshot: snap };