NestJS обнаружена циклическая зависимость (ключ свойства: «results») при использовании generic класса

Вопрос по NestJs. Делал все по примеру документации, но постоянно нарываюсь на одну и туже ошибку.

(node:22676) UnhandledPromiseRejectionWarning: Error: A circular dependency has been detected (property key: "results"). Please, make sure that each side of a bidirectional relationships are using lazy resolvers ("type: () => Cl assType")

Возможно ли решить эту проблему не создавая однотипные классы?

import { ApiOkResponse, getSchemaPath } from '@nestjs/swagger';
import { applyDecorators, Type } from '@nestjs/common';
import { PaginatedDto } from '../common/dto/paginated.dto';

export const ApiPaginatedResponse = <TModel extends Type>(model: TModel) => {
  return applyDecorators(
    ApiOkResponse({
      schema: {
        title: `PaginatedResponseOf${model.name}`,
        allOf: [
          { $ref: getSchemaPath(PaginatedDto) },
          {
            properties: {
              results: {
                type: 'array',
                items: { $ref: getSchemaPath(model) },
              },
            },
          },
        ],
      },
    }),
  );
};

export class PaginatedDto<T> {
  total: number;

  limit: number;

  offset: number;

  results: T[];
}


export class NewsDto {
  group: {
    id: number;
    title: string;
  };

  news: {
    id: number;
    date: Date;
    title: string;
  };
}


@Controller('news')
@ApiTags('news')
export class NewsController {
  constructor(private readonly newsService: NewsService) {}

  @Get()
  @ApiPaginatedResponse(NewsDto)
  findAll(
    @Query() paginationQuery: PaginationQuery,
  ): Promise<PaginatedDto<NewsDto>> {
    return this.newsService.findAll(paginationQuery);
  }
}

Это работает если делать не через дженерник, но тогда приходится добавлять множество однотипных классов с отличием типа свойства results

export class PaginatedDto {
  total: number;

  limit: number;

  offset: number;

  results: NewsDto[];
}

Ответы (0 шт):