refactor(mcp-server): move the preview page into src/preview

The 580-line page template in http-server.ts becomes index.html,
preview.css and preview.js, copied to dist/preview by the build and
filled at request time. The rendered page is unchanged apart from the
session id and draw.io origin now coming from a small config script.
Biome skips the folder because of the {{placeholders}}, as it never
linted the old template string either.
This commit is contained in:
dayuan.jiang
2026-10-04 06:46:09 +09:00
parent 667f678eb3
commit f52f95025f
8 changed files with 677 additions and 625 deletions
@@ -254,11 +254,15 @@ describe("export requests", () => {
})
describe("preview page", () => {
it("serves a script that parses", async () => {
it("serves scripts that parse, with every placeholder filled", async () => {
const res = await request("/?mcp=mcp-test-script")
const script = res.body.match(/<script>([\s\S]*)<\/script>/)?.[1]
expect(script).toBeTruthy()
expect(() => new Function(script as string)).not.toThrow()
expect(res.body).not.toContain("{{")
// Both scripts share one global scope in the page
const scripts = [...res.body.matchAll(/<script>([\s\S]*?)<\/script>/g)]
.map((m) => m[1])
.join("\n")
expect(scripts).toContain('const sessionId = "mcp-test-script";')
expect(() => new Function(scripts)).not.toThrow()
})
})