26 lines
628 B
TypeScript
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();
|
|
}
|