Swagger 增强版
警告
该库已废弃,目前采用pnpm patch
的方式对原版@nestjs/swagger
库打补丁的方式实现我们扩展的功能,详见笔记:依赖补丁
环境
基于@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 | 与原版相同 |
classValidatorShim | true | 与原版相同 |
dtoKeyOfComment | 'description' | 与原版相同 |
controllerKeyOfComment | 'description' | 选择 'description' 的时候与原版相同,选择 'summary' 的时候是魔改增强版本,支持注释中的 @description 功能 |
introspectComments | false | 与原版相同 |
RoadMap
- [√] 支持
Controller
中方法注释的@return
注释描述。 - 支持
ResDTO
泛型类型。 - 支持
interface
类型参数的DTO
解析。