import { ROOT_DOMAIN } from "../utils.ts"; import index from "../www/index.html" with { type: "text" }; import ascii from "./ascii.txt" with { type: "text" }; function route( path: string, callback: (req: Request) => Response ): { test: (path: string) => boolean; fn: (req: Request) => Response; } { const pattern = new URLPattern(path, `https://www.${ROOT_DOMAIN}`); return { test: (path) => pattern.test(path, `https://www.${ROOT_DOMAIN}`), fn: callback, }; } const routes = [ route( "/", () => new Response(index, { headers: { "Content-Type": "text/html; charset=utf8", }, }) ), route("/ascii.txt", () => new Response(ascii)), ]; export default function (req: Request) { const path = new URL(req.url).pathname; for (const r of routes) if (r.test(path)) return r.fn(req); return new Response("404", { status: 404, }); }