import type { CallHandler, ExecutionContext, NestInterceptor, } from '@nestjs/common'; import { Injectable } from '@nestjs/common'; import { map, type Observable } from 'rxjs'; @Injectable() export class ResponseFormatInterceptor implements NestInterceptor { public intercept( context: ExecutionContext, next: CallHandler, ): Observable<unknown> { const ctx = context.switchToHttp(); const response = ctx.getResponse(); return next.handle().pipe( map((data) => { return { statusCode: response.statusCode, data, }; }), ); } }