/ src / middleware / correlation.ts
correlation.ts
 1  import type { Namespace } from "cls-hooked";
 2  import type { NextFunction, Request, Response } from "express";
 3  import { v4 as uuidv4 } from "uuid";
 4  
 5  function correlation(namespace: Namespace) {
 6  	return (req: Request, res: Response, next: NextFunction) => {
 7  		const correlationId = uuidv4();
 8  		if (!req.feathers) {
 9  			req.feathers = {};
10  		}
11  		req.feathers.correlationId = correlationId;
12  		namespace.run(() => {
13  			namespace.set("correlationId", correlationId);
14  			next();
15  		});
16  	};
17  }
18  export default correlation;