Skip to content

Commit 72d58cc

Browse files
rookie-luochaodependabot[bot]GreatAuk
authored
chore: merge main to release (#546)
* build(deps-dev): bump @types/node from 24.8.0 to 24.9.1 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.8.0 to 24.9.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.9.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * feat: 以 cli 方式使用时添加交互行为 & 新增 defineConfig 定义配置 (#543) * feat: 以 cli 方式使用时,如果有一个以上的配置项,则通过可交互的形式让用户自己选择要生成的 service * feat: 新增 defineConfig 函数,为定义配置时提供 ts 类型提示 * docs: 更新文档-关于 defineConfig & options.describe * docs: 更新文档-关于代码贡献 * docs: create changelog * docs: update changelog --------- Co-authored-by: 故城 <[email protected]> * chore: clean code --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Utopia <[email protected]>
2 parents cbc7d2d + 0c1c506 commit 72d58cc

File tree

12 files changed

+198
-95
lines changed

12 files changed

+198
-95
lines changed

.changeset/soft-goats-shake.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"openapi-ts-request": Minor
3+
---
4+
5+
feat: 以 cli 方式使用时添加交互行为 & 新增 defineConfig 定义配置

README-en_US.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,20 @@ create `openapi-ts-request.config.ts` file in the project root directory
4545
> the config file also supports **_.openapi-ts-request.ts_**, **_openapi-ts-request.config.cjs_** format, reference [cosmiconfig](https://github.com/cosmiconfig/cosmiconfig?tab=readme-ov-file#cosmiconfig)
4646
4747
```ts
48-
import type { GenerateServiceProps } from 'openapi-ts-request';
48+
import { defineConfig } from 'openapi-ts-request';
4949

50-
export default {
51-
// schemaPath: './openapi.json', // local openapi file
52-
// serversPath: './src/apis', // interface storage path
50+
export default defineConfig({
5351
schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
54-
} as GenerateServiceProps;
52+
serversPath: './src/apis',
53+
});
5554
```
5655

5756
support passing in array config for generate
5857

5958
```ts
60-
import type { GenerateServiceProps } from 'openapi-ts-request';
59+
import { defineConfig } from 'openapi-ts-request';
6160

62-
export default [
61+
export default defineConfig([
6362
{
6463
schemaPath: 'http://app.swagger.io/v2/swagger.json',
6564
serversPath: './src/apis/app',
@@ -68,7 +67,7 @@ export default [
6867
schemaPath: 'http://auth.swagger.io/v2/swagger.json',
6968
serversPath: './src/apis/auth',
7069
},
71-
] as GenerateServiceProps[];
70+
]);
7271
```
7372

7473
add the command in `script` of `package.json`: `"openapi": "openapi-ts",`
@@ -229,6 +228,7 @@ openapi -i ./spec.json -o ./apis
229228
| serversPath | no | string | './src/apis' | the folder path for the run results |
230229
| requestLibPath | no | string | 'axios' | custom request lib path, for example: '@/request', 'node-fetch' |
231230
| full | no | boolean | true | full replacement |
231+
| describe | no | string | - | description information, which will be used when using cli interactive operation mode |
232232
| enableLogging | no | boolean | false | open the log |
233233
| priorityRule | no | string | 'include' | priority rule, include/exclude/both |
234234
| filterCaseInsensitive | no | boolean | false | whether to perform a case-insensitive match with includeTags, includePaths, excludeTags, excludePaths filters |
@@ -345,7 +345,8 @@ export default {
345345
4. make sure your code passes all test cases (new functional test cases need to be added for new features):`pnpm test:unit`
346346
5. create a changeset file using the command:`pnpm changeset`
347347
6. submit your changes using commit (must follow commitlint specification)
348-
7. submit Pull Request
348+
7. If documents are involved, please update README.md, READMD-en_US.md, and agents.md simultaneousl
349+
8. submit Pull Request
349350

350351
## Thanks
351352

README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,20 @@ pnpm i openapi-ts-request -D
4545
> 配置文件还支持 **_.openapi-ts-request.ts_**, **_openapi-ts-request.config.cjs_** 等格式,参考 [cosmiconfig](https://github.com/cosmiconfig/cosmiconfig?tab=readme-ov-file#cosmiconfig)
4646
4747
```ts
48-
import type { GenerateServiceProps } from 'openapi-ts-request';
48+
import { defineConfig } from 'openapi-ts-request';
4949

50-
export default {
50+
export default defineConfig({
5151
schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
52-
} as GenerateServiceProps;
52+
serversPath: './src/apis',
53+
});
5354
```
5455

5556
支持传入数组配置进行生成
5657

5758
```ts
58-
import type { GenerateServiceProps } from 'openapi-ts-request';
59+
import { defineConfig } from 'openapi-ts-request';
5960

60-
export default [
61+
export default defineConfig([
6162
{
6263
schemaPath: 'http://app.swagger.io/v2/swagger.json',
6364
serversPath: './src/apis/app',
@@ -66,7 +67,7 @@ export default [
6667
schemaPath: 'http://auth.swagger.io/v2/swagger.json',
6768
serversPath: './src/apis/auth',
6869
},
69-
] as GenerateServiceProps[];
70+
]);
7071
```
7172

7273
`package.json``script` 中添加命令: `"openapi": "openapi-ts",`
@@ -227,6 +228,7 @@ openapi --i ./spec.json --o ./apis
227228
| serversPath || string | './src/apis' | 运行结果文件夹路径 |
228229
| requestLibPath || string | 'axios' | 自定义请求方法路径,例如:'@/request'、'node-fetch' |
229230
| full || boolean | true | 是否全量替换 |
231+
| describe || string | - | 描述信息,在用 cli 可交互运行方式时会用到 |
230232
| enableLogging || boolean | false | 是否开启日志 |
231233
| priorityRule || string | 'include' | 模式规则,可选include/exclude/both |
232234
| filterCaseInsensitive || boolean | false | 执行 includeTags、includePaths、excludeTags、excludePaths 过滤时是否忽略大小写 |
@@ -266,6 +268,8 @@ openapi --i ./spec.json --o ./apis
266268
| customTemplates | {<br>[TypescriptFileType.serviceController]?: <T, U>(item: T, context: U) => string;<br>} | 自定义模板,详情请看源码 |
267269
| customRenderTemplateData | {<br>[TypescriptFileType]?: (list: any[], context: {fileName: string, params: Record<string, unknown>}) => any[]<br>} | 自定义文件生成时的 list 参数处理,支持对不同文件类型进行精细化控制 |
268270

271+
[hooks 示例](https://github.com/openapi-ui/openapi-ts-request/blob/main/agents.md#-advanced-customization-hooks)
272+
269273
## Apifox-Config
270274

271275
| 属性 | 类型 | 说明 | 必填 |
@@ -343,7 +347,8 @@ export default {
343347
4. 确保你的代码可以通过所有测试用例(新增功能需要添加新的功能测试用例):`pnpm test:unit`
344348
5. 创建 changeset 文件通过命令:`pnpm changeset`
345349
6. 使用 commit 提交你的修改(需遵循 commitlint 规范)
346-
7. 发起 Pull Request
350+
7. 如果涉及文档,请同步更新 README.md、READMD-en_US.md、agents.md
351+
8. 发起 Pull Request
347352

348353
## 感谢
349354

agents.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ else if (isNodeProject) {
102102
| `namespace` | string | `"API"` | TypeScript namespace | Custom namespace |
103103
| `templatesFolder` | string | - | Custom template directory | Custom templates |
104104
| `apifoxConfig` | object | - | Apifox-specific configuration | Apifox integration |
105+
| `describe` | string | - | description information | Using cli interactive operation mode |
105106

106107
### 3. Feature Requirements Mapping
107108

openapi-ts-request.config.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
import { type GenerateServiceProps } from './src/index';
1+
import { defineConfig } from './src/index';
22

3-
export default [
3+
export default defineConfig([
44
{
55
schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
66
serversPath: './apis/app',
7+
describe: 'Petstore API-1',
78
},
8-
] as GenerateServiceProps[];
9+
{
10+
schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
11+
serversPath: './apis/app2',
12+
describe: 'Petstore API-2',
13+
},
14+
]);

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"openapi-ts-request": "openapi-ts"
3636
},
3737
"dependencies": {
38+
"@clack/prompts": "^0.11.0",
3839
"@prettier/sync": "^0.6.1",
3940
"@trivago/prettier-plugin-sort-imports": "^5.2.1",
4041
"axios": "^1.7.2",

0 commit comments

Comments
 (0)