/
githubmirror
/
novu
Обзор
Документация
Войти
/
githubmirror
/
novu
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
next
apps/worker/src/app/shared/response.interceptor.ts
44 строки
1 KB
Dima Grossman
chore(root): upgrade NestJS packages to v11 fixes NV-7746 (#11218)
24 май 2026, 10:57
Не верифицирован
24 май 2026, 10:57
90c7b53
Код
Авторство
О чём код?
import { CallHandler, Injectable, NestInterceptor } from '@nestjs/common'; import { instanceToPlain } from 'class-transformer'; import { isArray, isObject } from 'lodash'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; export interface Response<T> { data: T; } @Injectable() export class ResponseInterceptor<T> implements NestInterceptor<T, Response<T>> { intercept(context, next: CallHandler): Observable<Response<T>> { if ((context.getType() as string) === 'graphql') return next.handle(); return next.handle().pipe( map((data) => { // For paginated results that already contain the data wrapper, return the whole object if (data?.data) { return { ...data, data: isObject(data.data) ? this.transformResponse(data.data) : data.data, }; } return { data: isObject(data) ? this.transformResponse(data) : data, }; }) ); } private transformResponse(response) { if (isArray(response)) { return response.map((item) => this.transformToPlain(item)); } return this.transformToPlain(response); } private transformToPlain(plainOrClass) { return plainOrClass && plainOrClass.constructor !== Object ? instanceToPlain(plainOrClass) : plainOrClass; } }