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
解析。