feat: Enhance logging and type safety across various components and services
Some checks failed
Deploy to Test Environment / deploy-to-test (push) Has been cancelled

This commit is contained in:
2025-12-13 23:12:50 -08:00
parent 77454b04c2
commit 7615d7746e
16 changed files with 96 additions and 61 deletions

View File

@@ -80,6 +80,21 @@ const getDurationInMilliseconds = (start: [number, number]): number => {
return (diff[0] * NS_PER_SEC + diff[1]) / NS_TO_MS;
};
/**
* Defines the structure for the detailed log object created for each request.
* This ensures type safety and consistency in our structured logs.
*/
interface RequestLogDetails {
user_id?: string;
method: string;
originalUrl: string;
statusCode: number;
statusMessage: string;
duration: string;
// The 'req' property is added conditionally for client/server errors.
req?: { headers: express.Request['headers']; body: express.Request['body'] };
}
const requestLogger = (req: Request, res: Response, next: NextFunction) => {
const requestId = randomUUID();
const user = req.user as UserProfile | undefined;
@@ -102,7 +117,7 @@ const requestLogger = (req: Request, res: Response, next: NextFunction) => {
const finalUser = req.user as UserProfile | undefined;
// The base log object includes details relevant for all status codes.
const logDetails: Record<string, any> = {
const logDetails: RequestLogDetails = {
user_id: finalUser?.user_id,
method,
originalUrl,