Files
gerbeur/api/main.ts
2026-03-15 17:15:46 +00:00

43 lines
926 B
TypeScript

import { Application } from "@oak/oak";
import { oakCors } from "@tajpouria/cors";
import dumpsRouter from "./routes/dumps.ts";
import usersRouter from "./routes/users.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(
usersRouter.routes(),
usersRouter.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 };