import { logger } from "@common/infrastructure/logger"; import { globalErrorHandler } from "@common/presentation"; import dotenv from "dotenv"; import express, { Application } from "express"; import helmet from "helmet"; import passport from "passport"; import responseTime from "response-time"; import { v1Routes } from "./routes"; dotenv.config(); export function createApp(): Application { const app = express(); app.set("port", process.env.PORT ?? 3002); // secure apps by setting various HTTP headers app.use(helmet()); app.disable("x-powered-by"); // Middlewares app.use(express.json()); app.use(express.text()); app.use(express.urlencoded({ extended: true })); app.use(responseTime()); // set up the response-time middleware // Inicializar Passport app.use(passport.initialize()); app.use((req, _, next) => { logger.info(`Incoming request ${req.method} to ${req.path}`); next(); }); // Registrar rutas de la API app.use("/api/v1", v1Routes()); // Gestión global de errores app.use(globalErrorHandler); return app; }