/* * @author gs * @date 2020/07/27 16:13 */ import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common'; import { map } from 'rxjs/operators'; import { Observable } from 'rxjs'; import { GqlContextType } from '@nestjs/graphql'; interface Response { data: T; code?: number; } @Injectable() export class ResponseInterceptor implements NestInterceptor> { intercept( context: ExecutionContext, next: CallHandler ): Observable> { return context.getType() === 'graphql' ? next.handle().pipe(map(data => data)) : next.handle().pipe(map(data => ({ data, code: 0 }))); } }