General source code refactoring

This commit is contained in:
2026-09-17 12:07:01 -03:00
parent 4421b28efe
commit ac817a69d4
92 changed files with 18211 additions and 19394 deletions

38
scripts/preview.mjs Normal file
View File

@@ -0,0 +1,38 @@
import http from "node:http";
import { readFile } from "node:fs/promises";
import composition from "./compose.cjs";
// Development-only routes. Never expose the workspace or forward API requests.
const routes = new Map([
["/", ["../tests/fixtures/extension.html", "text/html"]],
["/extension.js", ["../tests/fixtures/extension.js", "text/javascript"]],
["/consumption-trend.html", ["../tests/fixtures/consumption-trend.html", "text/html"]]
]);
const server = http.createServer(async (request, response) => {
const pathname = new URL(request.url, "http://127.0.0.1").pathname;
response.setHeader("Cache-Control", "no-store");
response.setHeader("X-Content-Type-Options", "nosniff");
if (request.method !== "GET") {
response.writeHead(405).end();
return;
}
try {
if (pathname === "/fixture-runtime.js") {
response.setHeader("Content-Type", "text/javascript");
response.end(`window.createFixtureApplication = ${composition.composeScript("content", { bootstrap: false })}`);
return;
}
const route = routes.get(pathname);
if (!route) {
response.writeHead(404).end();
return;
}
response.setHeader("Content-Type", `${route[1]}; charset=utf-8`);
response.end(await readFile(new URL(route[0], import.meta.url)));
} catch {
response.writeHead(500).end("Fixture could not be loaded.");
}
});
server.listen(Number(process.env.PORT) || 0, "127.0.0.1", () => {
console.log(`Synthetic extension preview: http://127.0.0.1:${server.address().port}/`);
});