@karry.sun/yapi-gen 0.2.2 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +44 -1
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +1 -26
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -106,10 +106,11 @@ pnpm yapi-gen --output-dir src/yapi --mapping-file src/yapi/gen-api-mapping.json
|
|
|
106
106
|
| `serverType` | `'yapi'` \| `'swagger'` | 否 |
|
|
107
107
|
| `requestAdapter` | `'axios'` / `'nuxt-bbm'` / `'custom'` | 否 |
|
|
108
108
|
| `requestFunctionFilePath` | 自定义 request 文件路径 | custom 时必填 |
|
|
109
|
-
| `outputFilePath` |
|
|
109
|
+
| `outputFilePath` | 生成文件路径或函数,不填时默认按 outputDir + 分类映射生成 | 否 |
|
|
110
|
+
| `outputDir` | 生成根目录,默认 `src/yapi` | 否 |
|
|
110
111
|
| `projects` | 项目列表(token、categories) | 是 |
|
|
111
|
-
| `dataKey` |
|
|
112
|
-
| `preproccessInterface` |
|
|
112
|
+
| `dataKey` | 业务数据字段(如 `'result'` / `'data'`),axios/nuxt-bbm 适配器会据此从响应中解包业务数据 | 否 |
|
|
113
|
+
| `preproccessInterface` | 预处理接口:可过滤或改写。不填时已内置按 YTT_INTERFACE_IDS / YTT_CATEGORY_IDS 过滤(支持按接口/分类生成) | 否 |
|
|
113
114
|
|
|
114
115
|
---
|
|
115
116
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAkClD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAetE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAEhF;AAED,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,UAAU,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,14 +1,57 @@
|
|
|
1
1
|
import { getDefaultConfig } from './schema';
|
|
2
|
+
/** 默认 preproccessInterface:按 YTT_INTERFACE_IDS / YTT_CATEGORY_IDS 过滤,支持按接口/分类生成 */
|
|
3
|
+
function getDefaultPreproccessInterface(interfaceInfo) {
|
|
4
|
+
const ids = process.env.YTT_INTERFACE_IDS;
|
|
5
|
+
const catIds = process.env.YTT_CATEGORY_IDS;
|
|
6
|
+
if (ids) {
|
|
7
|
+
const allowList = ids.split(',').map((s) => parseInt(s.trim(), 10));
|
|
8
|
+
if (!allowList.includes(interfaceInfo._id))
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
else if (catIds) {
|
|
12
|
+
const allowList = catIds.split(',').map((s) => s.trim());
|
|
13
|
+
if (!allowList.includes(String(interfaceInfo.catid)))
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return interfaceInfo;
|
|
17
|
+
}
|
|
18
|
+
/** 默认 outputFilePath:按 outputDir + 分类映射生成,支持 YTT_INTERFACE_IDS / YTT_CAT_MAPPING */
|
|
19
|
+
function getDefaultOutputFilePath(outputDir) {
|
|
20
|
+
return (interfaceInfo) => {
|
|
21
|
+
const ids = process.env.YTT_INTERFACE_IDS;
|
|
22
|
+
if (ids)
|
|
23
|
+
return `${outputDir}/.temp/api_${interfaceInfo._id}.ts`;
|
|
24
|
+
const catId = interfaceInfo.catid ?? 0;
|
|
25
|
+
let dirName = `cat_${catId}`;
|
|
26
|
+
try {
|
|
27
|
+
const mapping = process.env.YTT_CAT_MAPPING
|
|
28
|
+
? JSON.parse(process.env.YTT_CAT_MAPPING)
|
|
29
|
+
: {};
|
|
30
|
+
if (mapping[String(catId)])
|
|
31
|
+
dirName = mapping[String(catId)];
|
|
32
|
+
}
|
|
33
|
+
catch (_) { }
|
|
34
|
+
return `${outputDir}/${dirName}/index.ts`;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
2
37
|
/**
|
|
3
38
|
* 合并用户配置与默认配置,返回可直接用于 defineConfig([...]) 的配置对象
|
|
4
39
|
*/
|
|
5
40
|
export function mergeConfig(user) {
|
|
6
41
|
const defaults = getDefaultConfig();
|
|
7
|
-
|
|
42
|
+
const merged = {
|
|
8
43
|
...defaults,
|
|
9
44
|
...user,
|
|
10
45
|
reactHooks: user.reactHooks ?? defaults.reactHooks,
|
|
11
46
|
};
|
|
47
|
+
if (merged.outputFilePath == null) {
|
|
48
|
+
const outputDir = merged.outputDir ?? 'src/yapi';
|
|
49
|
+
merged.outputFilePath = getDefaultOutputFilePath(outputDir);
|
|
50
|
+
}
|
|
51
|
+
if (merged.preproccessInterface == null) {
|
|
52
|
+
merged.preproccessInterface = getDefaultPreproccessInterface;
|
|
53
|
+
}
|
|
54
|
+
return merged;
|
|
12
55
|
}
|
|
13
56
|
/**
|
|
14
57
|
* 定义 yapi-gen 配置的辅助函数,带类型提示与默认值
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -64,8 +64,8 @@ export interface YapiGenUserConfig {
|
|
|
64
64
|
requestAdapter?: YapiGenRequestAdapter;
|
|
65
65
|
/** 项目内请求适配器文件路径(custom 时必填;使用预设时可选,默认 src/yapi/request.ts) */
|
|
66
66
|
requestFunctionFilePath?: string;
|
|
67
|
-
/**
|
|
68
|
-
outputFilePath
|
|
67
|
+
/** 输出文件路径或函数,不填时默认按 outputDir + 分类映射生成 */
|
|
68
|
+
outputFilePath?: string | ((interfaceInfo: any, changeCase: {
|
|
69
69
|
paramCase: (s: string) => string;
|
|
70
70
|
camelCase: (s: string) => string;
|
|
71
71
|
pascalCase: (s: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,sBAAsB,CAAC,EAAE,CACvB,aAAa,EAAE,GAAG,EAClB,UAAU,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,KAClH,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,KAAK,MAAM,CAAC;CACtE;AAED,2BAA2B;AAC3B,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,UAAU,GACV,QAAQ,GACR;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,uBAAuB,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa;IACb,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACrC,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AA4IA,wBAAgB,GAAG,CAAC,OAAO,GAAE;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACZ,GAAG,MAAM,CAqFd"}
|
package/dist/run.js
CHANGED
|
@@ -92,33 +92,8 @@ export default defineYapiGenConfig({
|
|
|
92
92
|
// axios 时可选指定实例路径,默认 '/@/utils/http/axios'
|
|
93
93
|
// requestAdapter: { type: 'axios', axiosInstancePath: '/@/utils/http/axios' },
|
|
94
94
|
requestAdapter: 'axios',
|
|
95
|
-
outputFilePath
|
|
96
|
-
const ids = process.env.YTT_INTERFACE_IDS;
|
|
97
|
-
if (ids) return \`src/yapi/.temp/api_\${interfaceInfo._id}.ts\`;
|
|
98
|
-
const catId = interfaceInfo.catid ?? 0;
|
|
99
|
-
let dirName = \`cat_\${catId}\`;
|
|
100
|
-
try {
|
|
101
|
-
const mapping = process.env.YTT_CAT_MAPPING
|
|
102
|
-
? (JSON.parse(process.env.YTT_CAT_MAPPING) as Record<string, string>)
|
|
103
|
-
: {};
|
|
104
|
-
if (mapping[String(catId)]) dirName = mapping[String(catId)];
|
|
105
|
-
} catch (_) {}
|
|
106
|
-
return \`src/yapi/\${dirName}/index.ts\`;
|
|
107
|
-
},
|
|
95
|
+
// outputFilePath、preproccessInterface 可不填,已内置按 outputDir + 分类映射及按接口/分类过滤
|
|
108
96
|
dataKey: 'result',
|
|
109
|
-
preproccessInterface(interfaceInfo) {
|
|
110
|
-
// 可选:按环境变量过滤接口。YTT_INTERFACE_IDS=1,2,3 或 YTT_CATEGORY_IDS=401,413
|
|
111
|
-
const ids = process.env.YTT_INTERFACE_IDS;
|
|
112
|
-
const catIds = process.env.YTT_CATEGORY_IDS;
|
|
113
|
-
if (ids) {
|
|
114
|
-
const allowList = ids.split(',').map((s) => parseInt(s.trim(), 10));
|
|
115
|
-
if (!allowList.includes(interfaceInfo._id)) return false;
|
|
116
|
-
} else if (catIds) {
|
|
117
|
-
const allowList = catIds.split(',').map((s) => s.trim());
|
|
118
|
-
if (!allowList.includes(String(interfaceInfo.catid))) return false;
|
|
119
|
-
}
|
|
120
|
-
return interfaceInfo;
|
|
121
|
-
},
|
|
122
97
|
projects: [
|
|
123
98
|
{
|
|
124
99
|
token: process.env.YAPI_TOKEN || 'your-project-token',
|