{
  "name": "@pagoda-tools/swagger-ui",
  "version": "1.0.0-beta.41",
  "description": "swagger-ui",
  "main": "dist/index.js",
  "typings": "dist/index.d.ts",
  "bin": {
    "pd-swagger-ui": "./bin.js"
  },
  "exports": {
    ".": "./dist/index.js",
    "./middleware": "./dist/middleware.js"
  },
  "keywords": [
    "swagger-ui"
  ],
  "repository": {
    "type": "git",
    "url": "https://baiguokeji.coding.net/p/UEDYHSJ/d/APP_PC_pdUiV2/git/tree/production/packages/pagoda-swagger-ui"
  },
  "files": [
    "dist",
    "bin.js",
    "tsconfig.doc.json"
  ],
  "publishConfig": {
    "access": "public",
    "registry": "https://registry.npmjs.org/"
  },
  "dependencies": {
    "lodash": "^4.17.21",
    "class-transformer": "^0.5.1",
    "class-validator": "^0.13.2",
    "class-validator-jsonschema": "^3.1.1",
    "commander": "^9.4.1",
    "fs-extra": "^10.1.0",
    "express": "^4.18.2",
    "swagger-ui-express": "^4.5.0",
    "portfinder": "^1.0.32",
    "address": "^1.2.1",
    "chalk": "^4.1.2",
    "execa": "^5.1.1",
    "typescript": "^4.8.4"
  },
  "devDependencies": {
    "@babel/runtime": "^7.17.0",
    "@pagoda-tools/rollup-build-bundle": "1.0.1",
    "@babel/core": "^7.16.7",
    "@babel/plugin-transform-runtime": "^7.13.10",
    "@babel/preset-env": "^7.13.12",
    "@babel/preset-typescript": "^7.15.0",
    "openapi3-ts": "^3.1.1",
    "@types/fs-extra": "^9.0.13",
    "@types/express": "^4.17.14",
    "@types/swagger-ui-express": "^4.1.3"
  },
  "engines": {
    "node": "^14.16.0 || >=16.0.0"
  },
  "scripts": {
    "clean": "rimraf ./dist",
    "dev": "tsc -w",
    "test": "pnpm jest",
    "test:watch": "pnpm jest --watch",
    "build:bundle": "tsc",
    "build": "pnpm clean && pnpm build:bundle",
    "release": "pnpm build && pnpm publish --no-git-checks"
  },
  "readme": "# @pagoda-tools/swagger-ui\n\n## 安装\n\n```shell\n# install npm\nnpm install @pagoda-tools/swagger-ui -S\n\n# install yarn\nyarn add @pagoda-tools/swagger-ui -S\n```\n\n## 文档编写示例\n\n1. 根目录新增配置文件 `swagger.config.js`\n\n```ts\nimport { defineSwaggerConfig } from '@pagoda-tools/swagger-ui';\n\nexport default defineSwaggerConfig({\n  info: {\n    title: '测试文档标题',\n    version: '1.0.0',\n  },\n  server: [\n    {\n      url: 'http://www.xxx.com',\n      description: '测试环境',\n    },\n  ],\n});\n```\n\n2. 在 src 任意目录下新建 `xx.dto.ts`，示例代码如下：\n\n```ts\nimport {\n  defineSwaggerConfig,\n  defineSwaggerApi,\n  IsInt,\n  IsString,\n  Type,\n  ValidateNested,\n} from '@pagoda-tools/swagger-ui';\n\nclass User {\n  @IsString()\n  name: string;\n}\n\nexport class TestInput {\n  @IsInt()\n  @JSONSchema({\n    description: '字段描述',\n  })\n  a: number;\n\n  @ValidateNested({ each: true })\n  @Type(() => User)\n  @JSONSchema({\n    description: '字段描述',\n  })\n  users: User[];\n}\n\nexport class TestOutput {\n  @IsInt()\n  a: number;\n}\n\nexport default defineSwaggerApi({\n  method: 'get',\n  summary: '接口名称',\n  input: TestInput,\n  output: TestOutput,\n});\n```\n\n3. 在 `package.json` 的 `scripts` 中新增命令\n\n```json\n{\n  \"scripts\": {\n    \"doc-serve\": \"pd-swagger-ui serve\",\n    \"export-doc-json\": \"pd-swagger-ui json\"\n  }\n}\n```\n\n4. 执行 `npm run doc-serve`\n\n### swagger.config.js 配置项\n\n```ts\ninterface SwaggerConfig {\n  info?: {\n    // 文档标题\n    title?: string;\n    // 文档描述\n    description?: string;\n    // 文档版本\n    version?: string;\n  };\n  server?: {\n    // 接口环境地址\n    url: string;\n    // 接口环境地址描述\n    description?: string;\n  }[];\n}\n```\n\n- `IsInt` 等修饰器参考 [class-validator](https://github.com/typestack/class-validator#validation-decorators)\n"
}