import express from "express"; import path from "node:path"; import { config } from "./config.js"; import { requireAdmin, requireAuth } from "./middlewares/auth.js"; import { adminRouter } from "./routes/admin.js"; import { authRouter } from "./routes/auth.js"; import { logsRouter } from "./routes/logs.js"; import { serversRouter } from "./routes/servers.js"; function createApp() { const app = express(); app.use(express.json()); app.use("/server-images", express.static(config.serverImagesDir)); app.use("/api", authRouter); app.use("/api", requireAuth, serversRouter); app.use("/api", requireAuth, requireAdmin, logsRouter); app.use("/api/admin", requireAuth, requireAdmin, adminRouter); app.use(express.static(config.publicDir)); app.get("/{*splat}", (_req, res) => { res.sendFile(path.join(config.publicDir, "index.html")); }); return app; } export { createApp };