Mercurial
view react_games/backend/server.ts @ 278:8d560f50ed4c
Improve infinite canvas interactions and browser chrome
Render Lucide icons directly with Raylib, add searchable icon browsing, robust text editing, entity lifecycle animations, z-order-safe input, semantic themes, and animated editable browser controls. Document rendering, pinning, context, and component extension for future agents.
Co-authored-by: Copilot <[email protected]>
Copilot-Session: f68442b1-fa8f-46a0-9689-81710613bbd4
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 17 Aug 2026 22:16:14 -0700 |
| parents | fb9bcd3145cb |
| children |
line wrap: on
line source
import express from 'express'; import path from 'node:path'; import { createTodoRouter } from './routes/todo'; import { createWebRouter } from './routes/web'; import { createWorldeRouter } from './routes/wordle'; const app = express(); app.use(express.json()); const ROOT = process.cwd(); const PUBLIC_DIR = path.resolve(ROOT, 'public'); const DATA_FILE = path.resolve(ROOT, 'data', 'todos.json'); const PORT = Number(process.env.PORT) || 4000; const SPA_MOUNTS = [ { baseUrl: '/games', entryHtml: 'games/index.html' }, ]; app.use('/api/v1/todo', createTodoRouter(DATA_FILE)); app.use('/api/v1/wordle', createWorldeRouter()); app.use('/', createWebRouter(PUBLIC_DIR, SPA_MOUNTS)); app.listen(PORT, () => { console.log(`→ http://localhost:${PORT}`); });