import express, { type Express } from "express"; import cors from "cors"; import cookieParser from "cookie-parser"; import pinoHttp from "pino-http"; import router from "./routes"; import openaiRouter from "./routes/openai"; import publicRouter from "./routes/public"; import accountsRouter from "./routes/accounts"; import { logger } from "./lib/logger"; const app: Express = express(); app.use( pinoHttp({ logger, serializers: { req(req) { return { id: req.id, method: req.method, url: req.url?.split("?")[0], }; }, res(res) { return { statusCode: res.statusCode, }; }, }, }), ); app.use(cors({ credentials: true, origin: true })); app.use(cookieParser()); app.use(express.json({ limit: "20mb" })); app.use(express.urlencoded({ extended: true, limit: "20mb" })); app.use("/api/public", publicRouter); app.use("/api/admin/accounts", accountsRouter); app.use("/api", router); app.use("/v1", openaiRouter); app.use("/api/v1", openaiRouter); export default app;