Personal no-bs blogging platform.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import Hono from '@/lib/hono';import { serveStatic } from 'hono/bun';import { secureHeaders } from 'hono/secure-headers';
import eta from '@/lib/eta.ts';import auth from '@/routes/auth.ts';import dash from '@/routes/dashboard.ts';import write from '@/routes/write.ts';import { redirect_if_auth } from '@/middleware/redirect';import { params_middleware } from '@/middleware/params';import { bundle_typescript } from '@/bundle';import subdomainMiddleware from '@/middleware/subdomain';
import { clearWindow } from 'isomorphic-dompurify';import { cleanup_sessions } from '@/db/db';
await bundle_typescript();
const app = new Hono;
app.use(secureHeaders());
app.use('/static/*', serveStatic({ root: './static', rewriteRequestPath: (path) => path.replace(/^\/static/, '/'), }));app.use('/bundles/*', serveStatic({ root: './public', rewriteRequestPath: (path) => path.replace(/^\/bundles/, '/') }));
app.use(subdomainMiddleware);app.use(params_middleware);
app.get("/", redirect_if_auth("/dashboard", true), (c) => eta(c, "./index"));app.route("/", auth);app.route("/dashboard", dash);app.route("/write", write);
app.notFound((c) => { c.status(404) return eta(c, "not_found")});
Bun.cron("*/30 * * * *", async () => { await cleanup_sessions(); clearWindow();}) // (half an hour)
export default { port: process.env.PORT, fetch: app.fetch,};