feima-shortcuts 1.0.0 → 1.0.2
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/package.json +1 -1
- package/src/generateApi/index.js +29 -6
package/package.json
CHANGED
package/src/generateApi/index.js
CHANGED
|
@@ -2,9 +2,12 @@ const { Command } = require("commander");
|
|
|
2
2
|
const { spawn } = require("child_process");
|
|
3
3
|
const fs = require("fs");
|
|
4
4
|
const path = require("path");
|
|
5
|
+
const { deleteFolder } = require("../utils/deleteFolder");
|
|
6
|
+
const { makeDir } = require("../utils/makeDir");
|
|
5
7
|
|
|
6
8
|
|
|
7
|
-
const
|
|
9
|
+
const requestStrFun = (baseUrl) => {
|
|
10
|
+
return `/**
|
|
8
11
|
* 通过 feima generate-api 命令生成
|
|
9
12
|
* 请勿手动修改此文件
|
|
10
13
|
*/
|
|
@@ -29,7 +32,7 @@ export enum CommonHeaderEnum {
|
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
const service: any = axios.create({
|
|
32
|
-
baseURL: import.meta.env.VITE_API_URL
|
|
35
|
+
baseURL: \`\${import.meta.env.VITE_API_URL}${baseUrl}\`,
|
|
33
36
|
timeout: 50000, // 全局超时时间
|
|
34
37
|
paramsSerializer: {
|
|
35
38
|
serialize: (params: any) => {
|
|
@@ -164,7 +167,8 @@ export const request = <T>(
|
|
|
164
167
|
reject(error);
|
|
165
168
|
});
|
|
166
169
|
});
|
|
167
|
-
}
|
|
170
|
+
};`;
|
|
171
|
+
};
|
|
168
172
|
|
|
169
173
|
|
|
170
174
|
exports.run = () => {
|
|
@@ -181,19 +185,38 @@ exports.run = () => {
|
|
|
181
185
|
"-o, --output <dir>",
|
|
182
186
|
"输出目录,默认 src/api",
|
|
183
187
|
"src/api"
|
|
188
|
+
)
|
|
189
|
+
.option(
|
|
190
|
+
"-bu, --base-url <dir>",
|
|
191
|
+
"基础URL,默认 空",
|
|
192
|
+
""
|
|
184
193
|
)
|
|
185
194
|
.allowUnknownOption(true) // 保持向后兼容,忽略未知参数
|
|
186
|
-
.action((opts) => {
|
|
195
|
+
.action(async (opts) => {
|
|
187
196
|
const input = opts?.input || "http://192.168.0.74:9999/app/v3/api-docs";
|
|
188
197
|
const output = opts?.output || "src/api";
|
|
189
|
-
|
|
198
|
+
const baseUrl = opts?.baseUrl || "";
|
|
190
199
|
console.log(`📥 generate-api 输入地址: ${input}`);
|
|
191
200
|
console.log(`📦 输出目录: ${output}`);
|
|
192
201
|
|
|
202
|
+
|
|
203
|
+
// 生成前清空并重建输出目录,避免遗留文件
|
|
204
|
+
try {
|
|
205
|
+
const fullOutputDir = path.resolve(process.cwd(), output);
|
|
206
|
+
if (fs.existsSync(fullOutputDir)) {
|
|
207
|
+
deleteFolder(fullOutputDir);
|
|
208
|
+
}
|
|
209
|
+
makeDir(fullOutputDir);
|
|
210
|
+
console.log("🧹 已清空并初始化输出目录");
|
|
211
|
+
} catch (e) {
|
|
212
|
+
console.error("❌ 初始化输出目录失败:", e.message);
|
|
213
|
+
process.exit(1);
|
|
214
|
+
}
|
|
215
|
+
|
|
193
216
|
// 确保 ./tmpRequest.ts 使用内置的 requestStr(放在项目根目录)
|
|
194
217
|
const requestFile = path.resolve(process.cwd(), "tmpRequest.ts");
|
|
195
218
|
try {
|
|
196
|
-
fs.writeFileSync(requestFile,
|
|
219
|
+
fs.writeFileSync(requestFile, requestStrFun(baseUrl), "utf8");
|
|
197
220
|
console.log("📝 已写入 ./tmpRequest.ts");
|
|
198
221
|
} catch (e) {
|
|
199
222
|
console.error("❌ 写入 ./tmpRequest.ts 失败:", e.message);
|