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}`);