# swagger2ts

swagger2ts 是一个基于 openapi-tool 改造的工具，可以通过 swagger 文档自动生成前端 ts模型、request 文件。

如果你喜欢这个项目，请给我一个 star。你的鼓励就是我最大的动力！

### 特性

- 同时兼容 [OAS2](https://swagger.io/specification/v2/) 和 [OAS3](https://swagger.io/specification/)
- 支持主流的HTTP客户端库(目前支持 [axios](https://github.com/axios/axios) 和 [umi-request](https://github.com/umijs/umi-request))
- 支持生成 ts 模型文件
- 支持生成 ts request文件

### 安装

```
npm install swagger2ts
```

### 栗子

#### 使用方式

```js
const Swagger2ts = require('@mx560/Swagger2ts');
const { resolve } = require('path');

const url = 'https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json';
const outputDir = resolve(__dirname, 'typings');

const swagger2ts = new Swagger2ts({url});
swagger2ts.generateTs({outputDir});

```
### API

#### `new Swagger2ts(options: Options)`

创建一个 `Swagger2ts` 的实例.

**Options:**

| 参数 | 说明 | 类型 | 默认值 | 是否必须 |
| ------ | ------ | ------ | ------ | ------ |
| url | swagger 文档的地址  | string | - | url 或者 data 选填 |
| data | swagger 文档的 json 数据 | string | - | url 或者 data 选填 |

#### `generateTs(options: GeneratorTsOptions): void`

生成 ts 文件，文件名将会是 tag 的名称。

**GeneratorTsOptions:**

| 参数 | 说明 | 类型 | 默认值 | 是否必须 |
| ------ | ------ | ------ | ------ | ------ |
| outputDir | 输出目录  | string | - | true |
| generateModel | 是否生成model文件  | boolean | true | false |
| generateRequest | 是否生成request文件  | boolean | false | false |
| generateSwaggerJson | 是否生成SwaggerJson文件  | boolean | false | false |
| template | 想要生成的 HTTP 客户端模板 | string | `'umi-request'` | false |
| importText | 导入依赖的语句  | string | `默认导入语句` | false |
| multipleFiles | 多文件模式  | boolean | true | false |
