import { Application } from "@oak/oak"; import { oakCors } from "@tajpouria/cors"; import dumpsRouter from "./routes/dumps.ts"; import filesRouter from "./routes/files.ts"; import usersRouter from "./routes/users.ts"; import avatarsRouter from "./routes/avatars.ts"; import wsRouter from "./routes/ws.ts"; import previewRouter from "./routes/preview.ts"; import playlistsRouter from "./routes/playlists.ts"; import { BASE_URL, HOSTNAME, PORT } from "./config.ts"; import { errorMiddleware } from "./middleware/error.ts"; import routeStaticFilesFrom from "./lib/static.ts"; const app = new Application(); app.use(errorMiddleware); app.use(oakCors()); app.use( dumpsRouter.routes(), dumpsRouter.allowedMethods(), ); app.use( filesRouter.routes(), filesRouter.allowedMethods(), ); app.use( usersRouter.routes(), usersRouter.allowedMethods(), ); app.use( avatarsRouter.routes(), avatarsRouter.allowedMethods(), ); app.use( wsRouter.routes(), wsRouter.allowedMethods(), ); app.use( previewRouter.routes(), previewRouter.allowedMethods(), ); app.use( playlistsRouter.routes(), playlistsRouter.allowedMethods(), ); app.use(routeStaticFilesFrom([ `${Deno.cwd()}/dist`, `${Deno.cwd()}/public`, ])); app.addEventListener( "listen", () => console.log(`Server listening on ${BASE_URL}`), ); app.addEventListener( "error", (e) => console.log(`Uncaught error: ${e.message}`), ); if (import.meta.main) { await app.listen({ hostname: HOSTNAME, port: PORT }); } export { app };