Skip to main content

Swagger 增强版

警告

该库已废弃,目前采用pnpm patch的方式对原版@nestjs/swagger库打补丁的方式实现我们扩展的功能,详见笔记:依赖补丁

npm地址

环境

基于@nestjs/swagger v6.1.2

  • node >=16.x
  • nest >=9.x

安装

$ npm i @iot9x.com/nestjs-swagger
or
$ yarn add @iot9x.com/nestjs-swagger
or
$ pnpm add @iot9x.com/nestjs-swagger # 推荐使用pnpm

配置

装饰器模式与原版功能一致,但是 plugin 模式有修改增强。

{
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"plugins": [
{
"name": "@iot9x.com/nestjs-swagger",
"options": {
"dtoFileNameSuffix": [
".dto.ts"
],
"controllerFileNameSuffix": ".controller.ts",
"classValidatorShim": true,
"introspectComments": true
}
}
]
}
}

option配置:

export interface PluginOptions {
dtoFileNameSuffix?: string | string[];
controllerFileNameSuffix?: string | string[];
classValidatorShim?: boolean;
dtoKeyOfComment?: string;
controllerKeyOfComment?: 'summary' | 'description';
introspectComments?: boolean;
}
配置项默认值说明
dtoFileNameSuffix['.dto.ts', '.entity.ts']与原版相同
controllerFileNameSuffix.controller.ts与原版相同
classValidatorShimtrue与原版相同
dtoKeyOfComment'description'与原版相同
controllerKeyOfComment'description'选择 'description' 的时候与原版相同,选择 'summary' 的时候是魔改增强版本,支持注释中的 @description 功能
introspectCommentsfalse与原版相同

RoadMap

  • [√] 支持Controller中方法注释的@return注释描述。
  • 支持ResDTO泛型类型。
  • 支持interface类型参数的DTO解析。