import { Injectable, type NestMiddleware } from '@nestjs/common'; import { type NextFunction, type Request, type Response } from 'express'; import { MiddlewareService } from 'src/engine/middlewares/middleware.service'; @Injectable() export class GraphQLHydrateRequestFromTokenMiddleware implements NestMiddleware { constructor(private readonly middlewareService: MiddlewareService) {} async use(req: Request, res: Response, next: NextFunction) { try { await this.middlewareService.hydrateGraphqlRequest(req); } catch (error) { this.middlewareService.writeGraphqlResponseOnExceptionCaught(res, error); return; } next(); } }