import { PROM_REGISTRY } from "@t9tlai/host-runner-utils"; import compression from "compression"; import express from "express"; import promBundle from "express-prom-bundle"; import helmet from "helmet"; import "reflect-metadata"; import overviewRouter from "../domains/overview/router"; import suggestionsRouter from "../domains/suggestions/router"; import { getOverviewRouteCors } from "./cors"; import jwtMiddleware from "./jwtMiddleware"; import validateIsPartOfTeam from "./validateIsPartOfTeam"; import { winstonRequestLogger } from "./winston"; export default function setupApp(app: express.Application): void { app.use( promBundle({ includeMethod: true, includePath: true, includeUp: true, promRegistry: PROM_REGISTRY, autoregister: false, }) ); app.use(winstonRequestLogger()); app.use(express.json({ limit: "10mb" })); app.use(helmet()); app.use(compression()); app.use(jwtMiddleware()); app.use(validateIsPartOfTeam()); app.use("/suggestions", suggestionsRouter); app.use("/overview", getOverviewRouteCors(), overviewRouter); }