Spaces:
Paused
Paused
| import dotenv from "dotenv"; | |
| dotenv.config(); | |
| import express from "express"; | |
| import cors from "cors"; | |
| import pinoHttp from "pino-http"; | |
| import { logger } from "./logger"; | |
| import { keys } from "./keys"; | |
| import { proxyRouter } from "./proxy/routes"; | |
| import { handleInfoPage } from "./info-page"; | |
| const PORT = process.env.PORT || 7860; | |
| const app = express(); | |
| // middleware | |
| app.use(pinoHttp({ logger })); | |
| app.use(cors()); | |
| app.use( | |
| express.json({ limit: "10mb" }), | |
| express.urlencoded({ extended: true, limit: "10mb" }) | |
| ); | |
| // routes | |
| app.get("/", handleInfoPage); | |
| app.use("/proxy", proxyRouter); | |
| // 500 and 404 | |
| app.use((err: any, _req: unknown, res: express.Response, _next: unknown) => { | |
| if (err.status) { | |
| res.status(err.status).json({ error: err.message }); | |
| } else { | |
| logger.error(err); | |
| res.status(500).json({ error: "Internal server error" }); | |
| } | |
| }); | |
| app.use((_req: unknown, res: express.Response) => { | |
| res.status(404).json({ error: "Not found" }); | |
| }); | |
| // start server and load keys | |
| app.listen(PORT, () => { | |
| logger.info(`Server listening on port ${PORT}`); | |
| keys.init(); | |
| }); | |