Files
Qris-Soundbox/src/shared/middleware/requestContext.ts
2026-05-25 08:22:12 +07:00

26 lines
628 B
TypeScript

import { randomUUID } from "node:crypto";
import { Request, Response, NextFunction } from "express";
import { env } from "../../config/env";
declare module "express-serve-static-core" {
interface Request {
requestId: string;
traceId?: string;
}
}
export function requestContext(req: Request, _res: Response, next: NextFunction) {
const requestId =
(req.header(env.TRACE_HEADER) as string | undefined) ||
req.header("x-trace-id") ||
randomUUID();
const traceId =
(req.header("x-trace-id") as string | undefined) || requestId;
req.requestId = requestId;
req.traceId = traceId;
next();
}