dev.ts
756 B · typescript · 22 lines
1import { existsSync } from "node:fs";2import { join, resolve } from "node:path";3import { pages } from "./build.ts";45const org = resolve(import.meta.dir, "..");6const dist = join(org, "dist");78const done = await pages();910const server = Bun.serve({11 port: Number(process.env.PORT ?? 3000),12 development: true,13 async fetch(request) {14 let path = decodeURIComponent(new URL(request.url).pathname);15 if (path.endsWith("/")) path += "index.html";16 const file = Bun.file(join(dist, path));17 if (await file.exists()) return new Response(file);18 return new Response(Bun.file(join(dist, "404.html")), { status: 404, headers: { "content-type": "text/html" } });19 },20});2122console.log(`dev: ${done.site.routes.length} routes at ${server.url}`);