FactuGES_ERP/apps/server/src/app.ts
2025-02-03 14:12:36 +01:00

44 lines
1.1 KiB
TypeScript

import { initLogger } from "@common/infrastructure/logger";
import { errorHandler } 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();
const logger = initLogger();
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(errorHandler);
return app;
}