middlewares/loggingMiddleware.jsjavascript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.loggerMiddleWare = loggerMiddleWare;
exports.errorLoggingMiddleWare = errorLoggingMiddleWare;
const winston_1 = __importDefault(require("../plugins/winston"));
/**
* Middleware to log every incoming request
* @param {Request} req Incoming request object
* @param {Response} res Outgoing response object
* @param {Function} next Next handler function
*/
function loggerMiddleWare(req, _res, next) {
if (["/health", "/mcp"].includes(req.path))
return next();
if (!req.body)
req.body = {};
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { password = null, ...requestBody } = req.body;
winston_1.default.info(`${req.method} ${req.url} ; Referrer: ${req.get("Referrer") || null} ; Body: ${JSON.stringify(requestBody)};`);
next();
}
/**
* Middleware to handle all errors
* @param {Error} err Error to handle and to log
* @param {Request} req Incoming request object
* @param {Response} res Outgoing response object
* @param {Function} next Next handler function (not called)
*/
function errorLoggingMiddleWare(err, req, _res, next) {
// Log the error message at the error level
winston_1.default.error(`${err.name}: ${err.message || "No error message provided"}; ${req.rawBody || "body not available"}`);
next(err);
}