Spaces:
Sleeping
Sleeping
| import express, { type Express } from "express"; | |
| import cors from "cors"; | |
| import pinoHttp from "pino-http"; | |
| import { logger } from "./lib/logger"; | |
| const app: Express = express(); | |
| const useMockApi = | |
| process.env["GUARDIAN_LOCAL_MOCK_API"] === "1" || | |
| !process.env["AI_INTEGRATIONS_ANTHROPIC_BASE_URL"] || | |
| !process.env["AI_INTEGRATIONS_ANTHROPIC_API_KEY"] || | |
| !process.env["DATABASE_URL"]; | |
| 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()); | |
| app.use(express.json({ limit: "2mb" })); | |
| app.use(express.urlencoded({ extended: true, limit: "2mb" })); | |
| if (useMockApi) { | |
| logger.warn( | |
| { | |
| useMockApi, | |
| hasAnthropicBaseUrl: Boolean(process.env["AI_INTEGRATIONS_ANTHROPIC_BASE_URL"]), | |
| hasAnthropicApiKey: Boolean(process.env["AI_INTEGRATIONS_ANTHROPIC_API_KEY"]), | |
| hasDatabaseUrl: Boolean(process.env["DATABASE_URL"]), | |
| }, | |
| "Starting API server in local mock mode", | |
| ); | |
| const { createMockRouter } = await import("./routes/mock"); | |
| app.use("/api", createMockRouter()); | |
| } else { | |
| const { default: router } = await import("./routes"); | |
| app.use("/api", router); | |
| } | |
| export default app; | |