Mercurial
view react_games/backend/routes/web.ts @ 183:a8976a008a9d
[BenchMark] Added bun bench mark to test seoboe vs other popular benchmarks.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 23 Jan 2026 21:19:08 -0800 |
| parents | fb9bcd3145cb |
| children |
line wrap: on
line source
import { Router, static as serveStatic } from 'express'; import path from 'node:path'; type SpaMount = { baseUrl: string; // Base path like /games entryHtml: string; // we need to define its entry index html }; export function createWebRouter(publicDir: string, spaMounts: SpaMount[]) { const router = Router(); // order matters so geting just public one first router.use(serveStatic(publicDir, { index: 'index.html', extensions: ['html'], setHeaders: (res) => { res.setHeader('X-Content-Type-Options', 'nosniff'); }, })); for (const { baseUrl, entryHtml } of spaMounts) { router.get(baseUrl, (_req, res) => { res.sendFile(path.join(publicDir, entryHtml)); }); router.get(`${baseUrl}/:rest`, (_req, res) => { res.sendFile(path.join(publicDir, entryHtml)); }); } router.use((_req, res) => { res.status(404).send('Not Found'); }); return router; }