open-api-typescript-request-generator 0.0.1

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.
Files changed (71) hide show
  1. package/README.md +26 -0
  2. package/bin/apits-gener +4 -0
  3. package/es/Generator.d.ts +43 -0
  4. package/es/Generator.js +892 -0
  5. package/es/cli.d.ts +19 -0
  6. package/es/cli.js +547 -0
  7. package/es/console.d.ts +48 -0
  8. package/es/console.js +151 -0
  9. package/es/constants.d.ts +22 -0
  10. package/es/constants.js +39 -0
  11. package/es/dependenciesHandler.d.ts +16 -0
  12. package/es/dependenciesHandler.js +270 -0
  13. package/es/genIndex.d.ts +23 -0
  14. package/es/genIndex.js +354 -0
  15. package/es/genRequest.d.ts +3 -0
  16. package/es/genRequest.js +216 -0
  17. package/es/getOutputPath.d.ts +5 -0
  18. package/es/getOutputPath.js +28 -0
  19. package/es/helpers.d.ts +63 -0
  20. package/es/helpers.js +458 -0
  21. package/es/index.d.ts +2 -0
  22. package/es/index.js +34 -0
  23. package/es/requestYapiData.d.ts +157 -0
  24. package/es/requestYapiData.js +1010 -0
  25. package/es/responseDataJsonSchemaHandler.d.ts +11 -0
  26. package/es/responseDataJsonSchemaHandler.js +193 -0
  27. package/es/server/mock.d.ts +1 -0
  28. package/es/server/mock.js +7 -0
  29. package/es/server/swaggerJsonToYApiData.d.ts +10 -0
  30. package/es/server/swaggerJsonToYApiData.js +614 -0
  31. package/es/spinner.d.ts +15 -0
  32. package/es/spinner.js +58 -0
  33. package/es/types.d.ts +736 -0
  34. package/es/types.js +143 -0
  35. package/es/utils.d.ts +97 -0
  36. package/es/utils.js +783 -0
  37. package/lib/Generator.d.ts +43 -0
  38. package/lib/Generator.js +892 -0
  39. package/lib/cli.d.ts +19 -0
  40. package/lib/cli.js +547 -0
  41. package/lib/console.d.ts +48 -0
  42. package/lib/console.js +151 -0
  43. package/lib/constants.d.ts +22 -0
  44. package/lib/constants.js +39 -0
  45. package/lib/dependenciesHandler.d.ts +16 -0
  46. package/lib/dependenciesHandler.js +270 -0
  47. package/lib/genIndex.d.ts +23 -0
  48. package/lib/genIndex.js +354 -0
  49. package/lib/genRequest.d.ts +3 -0
  50. package/lib/genRequest.js +216 -0
  51. package/lib/getOutputPath.d.ts +5 -0
  52. package/lib/getOutputPath.js +28 -0
  53. package/lib/helpers.d.ts +63 -0
  54. package/lib/helpers.js +458 -0
  55. package/lib/index.d.ts +2 -0
  56. package/lib/index.js +34 -0
  57. package/lib/requestYapiData.d.ts +157 -0
  58. package/lib/requestYapiData.js +1010 -0
  59. package/lib/responseDataJsonSchemaHandler.d.ts +11 -0
  60. package/lib/responseDataJsonSchemaHandler.js +193 -0
  61. package/lib/server/mock.d.ts +1 -0
  62. package/lib/server/mock.js +7 -0
  63. package/lib/server/swaggerJsonToYApiData.d.ts +10 -0
  64. package/lib/server/swaggerJsonToYApiData.js +614 -0
  65. package/lib/spinner.d.ts +15 -0
  66. package/lib/spinner.js +58 -0
  67. package/lib/types.d.ts +736 -0
  68. package/lib/types.js +143 -0
  69. package/lib/utils.d.ts +97 -0
  70. package/lib/utils.js +783 -0
  71. package/package.json +106 -0
@@ -0,0 +1,1010 @@
1
+ "use strict";
2
+
3
+ var __assign = this && this.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+
8
+ for (var p in s) {
9
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
10
+ }
11
+ }
12
+
13
+ return t;
14
+ };
15
+
16
+ return __assign.apply(this, arguments);
17
+ };
18
+
19
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return m[k];
28
+ }
29
+ };
30
+ }
31
+
32
+ Object.defineProperty(o, k2, desc);
33
+ } : function (o, m, k, k2) {
34
+ if (k2 === undefined) k2 = k;
35
+ o[k2] = m[k];
36
+ });
37
+
38
+ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {
39
+ Object.defineProperty(o, "default", {
40
+ enumerable: true,
41
+ value: v
42
+ });
43
+ } : function (o, v) {
44
+ o["default"] = v;
45
+ });
46
+
47
+ var __importStar = this && this.__importStar || function (mod) {
48
+ if (mod && mod.__esModule) return mod;
49
+ var result = {};
50
+ if (mod != null) for (var k in mod) {
51
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
52
+ }
53
+
54
+ __setModuleDefault(result, mod);
55
+
56
+ return result;
57
+ };
58
+
59
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
60
+ function adopt(value) {
61
+ return value instanceof P ? value : new P(function (resolve) {
62
+ resolve(value);
63
+ });
64
+ }
65
+
66
+ return new (P || (P = Promise))(function (resolve, reject) {
67
+ function fulfilled(value) {
68
+ try {
69
+ step(generator.next(value));
70
+ } catch (e) {
71
+ reject(e);
72
+ }
73
+ }
74
+
75
+ function rejected(value) {
76
+ try {
77
+ step(generator["throw"](value));
78
+ } catch (e) {
79
+ reject(e);
80
+ }
81
+ }
82
+
83
+ function step(result) {
84
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
85
+ }
86
+
87
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
88
+ });
89
+ };
90
+
91
+ var __generator = this && this.__generator || function (thisArg, body) {
92
+ var _ = {
93
+ label: 0,
94
+ sent: function sent() {
95
+ if (t[0] & 1) throw t[1];
96
+ return t[1];
97
+ },
98
+ trys: [],
99
+ ops: []
100
+ },
101
+ f,
102
+ y,
103
+ t,
104
+ g;
105
+ return g = {
106
+ next: verb(0),
107
+ "throw": verb(1),
108
+ "return": verb(2)
109
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
110
+ return this;
111
+ }), g;
112
+
113
+ function verb(n) {
114
+ return function (v) {
115
+ return step([n, v]);
116
+ };
117
+ }
118
+
119
+ function step(op) {
120
+ if (f) throw new TypeError("Generator is already executing.");
121
+
122
+ while (_) {
123
+ try {
124
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
125
+ if (y = 0, t) op = [op[0] & 2, t.value];
126
+
127
+ switch (op[0]) {
128
+ case 0:
129
+ case 1:
130
+ t = op;
131
+ break;
132
+
133
+ case 4:
134
+ _.label++;
135
+ return {
136
+ value: op[1],
137
+ done: false
138
+ };
139
+
140
+ case 5:
141
+ _.label++;
142
+ y = op[1];
143
+ op = [0];
144
+ continue;
145
+
146
+ case 7:
147
+ op = _.ops.pop();
148
+
149
+ _.trys.pop();
150
+
151
+ continue;
152
+
153
+ default:
154
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
155
+ _ = 0;
156
+ continue;
157
+ }
158
+
159
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
160
+ _.label = op[1];
161
+ break;
162
+ }
163
+
164
+ if (op[0] === 6 && _.label < t[1]) {
165
+ _.label = t[1];
166
+ t = op;
167
+ break;
168
+ }
169
+
170
+ if (t && _.label < t[2]) {
171
+ _.label = t[2];
172
+
173
+ _.ops.push(op);
174
+
175
+ break;
176
+ }
177
+
178
+ if (t[2]) _.ops.pop();
179
+
180
+ _.trys.pop();
181
+
182
+ continue;
183
+ }
184
+
185
+ op = body.call(thisArg, _);
186
+ } catch (e) {
187
+ op = [6, e];
188
+ y = 0;
189
+ } finally {
190
+ f = t = 0;
191
+ }
192
+ }
193
+
194
+ if (op[0] & 5) throw op[1];
195
+ return {
196
+ value: op[0] ? op[1] : void 0,
197
+ done: true
198
+ };
199
+ }
200
+ };
201
+
202
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
203
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
204
+ if (ar || !(i in from)) {
205
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
206
+ ar[i] = from[i];
207
+ }
208
+ }
209
+ return to.concat(ar || Array.prototype.slice.call(from));
210
+ };
211
+
212
+ var __importDefault = this && this.__importDefault || function (mod) {
213
+ return mod && mod.__esModule ? mod : {
214
+ "default": mod
215
+ };
216
+ };
217
+
218
+ Object.defineProperty(exports, "__esModule", {
219
+ value: true
220
+ });
221
+ exports.getProjectInfoAndInterfaces = exports.getInterfacesByCategoryIds = exports.fetchCatInterfaceById = exports.fetchInterfaceById = exports.fetchProjectInfo = exports.fetchProjectInfoById = exports.fetchInterfaceList = exports.fetchInterfaceListById = exports.fetchExport = exports.fetchExportById = exports.fetchProject = exports.fetchProjectById = exports.fetchToken = exports.fetchApi = exports.loginPrompts = void 0;
222
+ /**
223
+ * 获取yapi数据
224
+ */
225
+
226
+ var got_1 = __importDefault(require("got"));
227
+
228
+ var prompts_1 = __importDefault(require("prompts"));
229
+
230
+ var vtils_1 = require("vtils");
231
+
232
+ var constants_1 = require("./constants");
233
+
234
+ var conso = __importStar(require("./console"));
235
+
236
+ var spinner_1 = require("./spinner");
237
+
238
+ var helpers_1 = require("./helpers");
239
+
240
+ var client = got_1.default.extend({
241
+ responseType: 'json',
242
+ https: {
243
+ rejectUnauthorized: false
244
+ }
245
+ });
246
+
247
+ var emailValidate = function emailValidate(prev, values) {
248
+ return !prev ? '请输入邮箱' : true;
249
+ };
250
+
251
+ var passwordValidate = function passwordValidate(prev, values) {
252
+ return !prev ? '请输入密码' : true;
253
+ };
254
+
255
+ var inputs = [{
256
+ type: 'text',
257
+ name: 'email',
258
+ message: '请输入yapi的邮箱账号',
259
+ validate: emailValidate
260
+ }, {
261
+ type: 'password',
262
+ name: 'password',
263
+ message: '请输入密码',
264
+ validate: passwordValidate
265
+ }];
266
+ /**
267
+ * 登录提示框,账号密码录入
268
+ * @returns
269
+ */
270
+
271
+ var loginPrompts = function loginPrompts(serverUrl) {
272
+ return __awaiter(void 0, void 0, void 0, function () {
273
+ var formatInputs, res;
274
+ return __generator(this, function (_a) {
275
+ switch (_a.label) {
276
+ case 0:
277
+ formatInputs = __spreadArray([], inputs, true);
278
+
279
+ if (serverUrl) {
280
+ formatInputs[0].message = "\u8BF7\u8F93\u5165".concat(serverUrl, "\u7684\u90AE\u7BB1\u8D26\u53F7");
281
+ }
282
+
283
+ return [4
284
+ /*yield*/
285
+ , (0, prompts_1.default)(formatInputs)];
286
+
287
+ case 1:
288
+ res = _a.sent();
289
+ return [2
290
+ /*return*/
291
+ , res];
292
+ }
293
+ });
294
+ });
295
+ };
296
+
297
+ exports.loginPrompts = loginPrompts;
298
+ /**
299
+ *
300
+ * @param url 请求方法
301
+ * @param query
302
+ * @returns
303
+ */
304
+
305
+ var fetchApi = function fetchApi(path, data, config) {
306
+ return __awaiter(this, void 0, void 0, function () {
307
+ var _a, _b, serverUrl, _c, errorExit, method, url, params, response, res;
308
+
309
+ return __generator(this, function (_d) {
310
+ switch (_d.label) {
311
+ case 0:
312
+ _a = config || {}, _b = _a.serverUrl, serverUrl = _b === void 0 ? constants_1.DefaultServerUrl : _b, _c = _a.errorExit, errorExit = _c === void 0 ? true : _c;
313
+ method = (config === null || config === void 0 ? void 0 : config.method) || 'get';
314
+ url = path.startsWith('http') ? path : "".concat(serverUrl).concat(path);
315
+ params = __assign({}, data);
316
+
317
+ if (config === null || config === void 0 ? void 0 : config.token) {
318
+ params.token = config.token;
319
+ }
320
+
321
+ return [4
322
+ /*yield*/
323
+ , client(url, {
324
+ method: method,
325
+ json: method.toLowerCase() !== 'get' ? params : undefined,
326
+ searchParams: method.toLowerCase() === 'get' ? params : undefined
327
+ }).catch(function (e) {
328
+ return {
329
+ body: {
330
+ errcode: 1111,
331
+ errmsg: e.message || '接口请求异常',
332
+ data: null
333
+ }
334
+ };
335
+ })];
336
+
337
+ case 1:
338
+ response = _d.sent();
339
+ res = response.body;
340
+
341
+ if (res && res.errcode) {
342
+ spinner_1.spinnerInstance.stop();
343
+
344
+ if (res.errcode === constants_1.ResponseErrorCode.UnLogin) {
345
+ conso.error('登录已过期或token异常', url, data);
346
+ } else {
347
+ conso.error(res.errmsg, url, data);
348
+ }
349
+
350
+ if (errorExit) process.exit();
351
+ }
352
+
353
+ return [2
354
+ /*return*/
355
+ , res.data || res];
356
+ }
357
+ });
358
+ });
359
+ };
360
+
361
+ exports.fetchApi = fetchApi;
362
+ /**
363
+ * 获取项目token
364
+ */
365
+
366
+ var fetchToken = function fetchToken(id, config) {
367
+ return __awaiter(void 0, void 0, void 0, function () {
368
+ var res;
369
+ return __generator(this, function (_a) {
370
+ switch (_a.label) {
371
+ case 0:
372
+ return [4
373
+ /*yield*/
374
+ , (0, exports.fetchApi)(constants_1.yapiApiToken, {
375
+ project_id: id
376
+ }, config)];
377
+
378
+ case 1:
379
+ res = _a.sent();
380
+ return [2
381
+ /*return*/
382
+ , res];
383
+ }
384
+ });
385
+ });
386
+ };
387
+
388
+ exports.fetchToken = fetchToken;
389
+ /**
390
+ * 获取项目基本信息 by id
391
+ */
392
+
393
+ var fetchProjectById = function fetchProjectById(config) {
394
+ return __awaiter(void 0, void 0, void 0, function () {
395
+ var projectId, projectInfo, basePath;
396
+ return __generator(this, function (_a) {
397
+ switch (_a.label) {
398
+ case 0:
399
+ projectId = config.projectId;
400
+ return [4
401
+ /*yield*/
402
+ , (0, exports.fetchApi)(constants_1.yapiApiGetProject, {
403
+ id: projectId
404
+ }, config)];
405
+
406
+ case 1:
407
+ projectInfo = _a.sent();
408
+ basePath = "/".concat(projectInfo.basepath || '/').replace(/\/+$/, '').replace(/^\/+/, '/');
409
+ projectInfo.basepath = basePath;
410
+ return [2
411
+ /*return*/
412
+ , projectInfo];
413
+ }
414
+ });
415
+ });
416
+ };
417
+
418
+ exports.fetchProjectById = fetchProjectById;
419
+ /**
420
+ * 获取项目基本信息
421
+ *
422
+ */
423
+
424
+ var fetchProject = function fetchProject(config) {
425
+ return __awaiter(void 0, void 0, void 0, function () {
426
+ var projectInfo, basePath;
427
+ return __generator(this, function (_a) {
428
+ switch (_a.label) {
429
+ case 0:
430
+ if (!config.token) {
431
+ return [2
432
+ /*return*/
433
+ , (0, exports.fetchProjectById)(config)];
434
+ }
435
+
436
+ return [4
437
+ /*yield*/
438
+ , (0, exports.fetchApi)(constants_1.yapiApiGetProject, {
439
+ token: config.token
440
+ }, config)];
441
+
442
+ case 1:
443
+ projectInfo = _a.sent();
444
+ basePath = "/".concat(projectInfo.basepath || '/').replace(/\/+$/, '').replace(/^\/+/, '/');
445
+ projectInfo.basepath = basePath;
446
+ return [2
447
+ /*return*/
448
+ , projectInfo];
449
+ }
450
+ });
451
+ });
452
+ };
453
+
454
+ exports.fetchProject = fetchProject;
455
+ /**
456
+ * 通过导出接口获取项目下的所有接口 by id
457
+ */
458
+
459
+ var fetchExportById = function fetchExportById(config) {
460
+ return __awaiter(void 0, void 0, void 0, function () {
461
+ var projectInfo, categoryList;
462
+ return __generator(this, function (_a) {
463
+ switch (_a.label) {
464
+ case 0:
465
+ return [4
466
+ /*yield*/
467
+ , (0, exports.fetchProjectById)(config)];
468
+
469
+ case 1:
470
+ projectInfo = _a.sent();
471
+ return [4
472
+ /*yield*/
473
+ , (0, exports.fetchApi)(constants_1.yapiApiExport, {
474
+ type: 'json',
475
+ status: 'all',
476
+ isWiki: 'false',
477
+ token: projectInfo.token
478
+ }, config)];
479
+
480
+ case 2:
481
+ categoryList = _a.sent();
482
+ return [2
483
+ /*return*/
484
+ , categoryList.map(function (cat) {
485
+ cat.list = (cat.list || []).map(function (item) {
486
+ item.path = "".concat(projectInfo.basepath).concat(item.path);
487
+ return item;
488
+ });
489
+ return cat;
490
+ })];
491
+ }
492
+ });
493
+ });
494
+ };
495
+
496
+ exports.fetchExportById = fetchExportById;
497
+ /**
498
+ * 通过导出接口获取项目下的所有接口
499
+ */
500
+
501
+ var fetchExport = function fetchExport(config) {
502
+ return __awaiter(void 0, void 0, void 0, function () {
503
+ var projectInfo, categoryList;
504
+ return __generator(this, function (_a) {
505
+ switch (_a.label) {
506
+ case 0:
507
+ if (!config.token) {
508
+ return [2
509
+ /*return*/
510
+ , (0, exports.fetchExportById)(config)];
511
+ }
512
+
513
+ return [4
514
+ /*yield*/
515
+ , (0, exports.fetchProject)(config)];
516
+
517
+ case 1:
518
+ projectInfo = _a.sent();
519
+ return [4
520
+ /*yield*/
521
+ , (0, exports.fetchApi)(constants_1.yapiApiExport, {
522
+ type: 'json',
523
+ status: 'all',
524
+ isWiki: 'false',
525
+ token: config.token
526
+ }, config)];
527
+
528
+ case 2:
529
+ categoryList = _a.sent();
530
+ return [2
531
+ /*return*/
532
+ , categoryList.map(function (cat) {
533
+ cat.list = (cat.list || []).map(function (item) {
534
+ item.path = "".concat(projectInfo.basepath).concat(item.path);
535
+ return item;
536
+ });
537
+ return cat;
538
+ })];
539
+ }
540
+ });
541
+ });
542
+ };
543
+
544
+ exports.fetchExport = fetchExport;
545
+ /**
546
+ * 获取所有接口 by id
547
+ * @param param0
548
+ * @returns
549
+ */
550
+
551
+ var fetchInterfaceListById = function fetchInterfaceListById(config) {
552
+ return __awaiter(this, void 0, void 0, function () {
553
+ var id, allData, category;
554
+ return __generator(this, function (_a) {
555
+ switch (_a.label) {
556
+ case 0:
557
+ id = config.id;
558
+ return [4
559
+ /*yield*/
560
+ , (0, exports.fetchExportById)(config)];
561
+
562
+ case 1:
563
+ allData = _a.sent();
564
+ category = (allData || []).filter(function (cat) {
565
+ return !(0, vtils_1.isEmpty)(cat) && !(0, vtils_1.isEmpty)(cat.list) && (!id || id && cat.list[0].catid === id);
566
+ });
567
+
568
+ if (category) {
569
+ category.forEach(function (interfaceInfo) {
570
+ interfaceInfo._id = interfaceInfo.list[0].catid;
571
+ interfaceInfo.list.forEach(function (item) {
572
+ // 实现 _category 字段
573
+ item._category = (0, vtils_1.omit)(interfaceInfo, ['list']);
574
+ });
575
+ });
576
+ }
577
+
578
+ return [2
579
+ /*return*/
580
+ , category];
581
+ }
582
+ });
583
+ });
584
+ };
585
+
586
+ exports.fetchInterfaceListById = fetchInterfaceListById;
587
+ /**
588
+ * 获取所有接口
589
+ * @param param0
590
+ * @returns
591
+ */
592
+
593
+ var fetchInterfaceList = function fetchInterfaceList(config) {
594
+ return __awaiter(this, void 0, void 0, function () {
595
+ var id, token, allData, category;
596
+ return __generator(this, function (_a) {
597
+ switch (_a.label) {
598
+ case 0:
599
+ id = config.id, token = config.token;
600
+
601
+ if (!token) {
602
+ return [2
603
+ /*return*/
604
+ , (0, exports.fetchInterfaceListById)(config)];
605
+ }
606
+
607
+ return [4
608
+ /*yield*/
609
+ , (0, exports.fetchExport)(config)];
610
+
611
+ case 1:
612
+ allData = _a.sent();
613
+ category = (allData || []).filter(function (cat) {
614
+ return !(0, vtils_1.isEmpty)(cat) && !(0, vtils_1.isEmpty)(cat.list) && (!id || id && cat.list[0].catid === id);
615
+ });
616
+
617
+ if (category) {
618
+ category.forEach(function (interfaceInfo) {
619
+ interfaceInfo._id = interfaceInfo.list[0].catid;
620
+ interfaceInfo.list.forEach(function (item) {
621
+ // 实现 _category 字段
622
+ item._category = (0, vtils_1.omit)(interfaceInfo, ['list']);
623
+ });
624
+ });
625
+ }
626
+
627
+ return [2
628
+ /*return*/
629
+ , category];
630
+ }
631
+ });
632
+ });
633
+ };
634
+
635
+ exports.fetchInterfaceList = fetchInterfaceList;
636
+ /**
637
+ * 获取项目信息 by id
638
+ * @param config
639
+ * @returns
640
+ */
641
+
642
+ var fetchProjectInfoById = function fetchProjectInfoById(config) {
643
+ return __awaiter(this, void 0, void 0, function () {
644
+ var serverUrl, projectId, projectInfo, projectCats;
645
+ return __generator(this, function (_a) {
646
+ switch (_a.label) {
647
+ case 0:
648
+ serverUrl = config.serverUrl, projectId = config.projectId;
649
+ return [4
650
+ /*yield*/
651
+ , (0, exports.fetchProjectById)(config)];
652
+
653
+ case 1:
654
+ projectInfo = _a.sent();
655
+ return [4
656
+ /*yield*/
657
+ , (0, exports.fetchApi)(constants_1.yapiApiGetMenu, {
658
+ project_id: projectId
659
+ }, config)];
660
+
661
+ case 2:
662
+ projectCats = _a.sent();
663
+ return [2
664
+ /*return*/
665
+ , __assign(__assign({}, projectInfo), {
666
+ cats: projectCats,
667
+ getMockUrl: function getMockUrl() {
668
+ return "".concat(serverUrl, "/mock/").concat(projectInfo._id);
669
+ },
670
+ getDevUrl: function getDevUrl(devEnvName) {
671
+ var env = projectInfo.env.find(function (e) {
672
+ return e.name === devEnvName;
673
+ });
674
+ return env && env.domain
675
+ /* istanbul ignore next */
676
+ || '';
677
+ },
678
+ getProdUrl: function getProdUrl(prodEnvName) {
679
+ var env = projectInfo.env.find(function (e) {
680
+ return e.name === prodEnvName;
681
+ });
682
+ return env && env.domain
683
+ /* istanbul ignore next */
684
+ || '';
685
+ }
686
+ })];
687
+ }
688
+ });
689
+ });
690
+ };
691
+
692
+ exports.fetchProjectInfoById = fetchProjectInfoById;
693
+ /**
694
+ * 获取项目信息
695
+ * @param config
696
+ * @returns
697
+ */
698
+
699
+ var fetchProjectInfo = function fetchProjectInfo(config) {
700
+ return __awaiter(this, void 0, void 0, function () {
701
+ var token, serverUrl, projectInfo, projectCats;
702
+ return __generator(this, function (_a) {
703
+ switch (_a.label) {
704
+ case 0:
705
+ token = config.token, serverUrl = config.serverUrl;
706
+
707
+ if (!token) {
708
+ return [2
709
+ /*return*/
710
+ , (0, exports.fetchProjectInfoById)(config)];
711
+ }
712
+
713
+ return [4
714
+ /*yield*/
715
+ , (0, exports.fetchProject)(config)];
716
+
717
+ case 1:
718
+ projectInfo = _a.sent();
719
+ return [4
720
+ /*yield*/
721
+ , (0, exports.fetchApi)(constants_1.yapiApiGetMenu, {
722
+ token: token
723
+ }, config)];
724
+
725
+ case 2:
726
+ projectCats = _a.sent();
727
+ return [2
728
+ /*return*/
729
+ , __assign(__assign({}, projectInfo), {
730
+ cats: projectCats,
731
+ getMockUrl: function getMockUrl() {
732
+ return "".concat(serverUrl, "/mock/").concat(projectInfo._id);
733
+ },
734
+ getDevUrl: function getDevUrl(devEnvName) {
735
+ var env = projectInfo.env.find(function (e) {
736
+ return e.name === devEnvName;
737
+ });
738
+ return env && env.domain
739
+ /* istanbul ignore next */
740
+ || '';
741
+ },
742
+ getProdUrl: function getProdUrl(prodEnvName) {
743
+ var env = projectInfo.env.find(function (e) {
744
+ return e.name === prodEnvName;
745
+ });
746
+ return env && env.domain
747
+ /* istanbul ignore next */
748
+ || '';
749
+ }
750
+ })];
751
+ }
752
+ });
753
+ });
754
+ };
755
+
756
+ exports.fetchProjectInfo = fetchProjectInfo;
757
+ /**
758
+ * 获取单个接口信息 by id
759
+ */
760
+
761
+ var fetchInterfaceById = function fetchInterfaceById(id, config) {
762
+ return __awaiter(void 0, void 0, void 0, function () {
763
+ var res;
764
+ return __generator(this, function (_a) {
765
+ switch (_a.label) {
766
+ case 0:
767
+ return [4
768
+ /*yield*/
769
+ , (0, exports.fetchApi)(constants_1.yapiApiInterfaceDetail, {
770
+ id: id
771
+ }, config)];
772
+
773
+ case 1:
774
+ res = _a.sent();
775
+ return [2
776
+ /*return*/
777
+ , res];
778
+ }
779
+ });
780
+ });
781
+ };
782
+
783
+ exports.fetchInterfaceById = fetchInterfaceById;
784
+ /**
785
+ * 获取分类下的接口列表信息 by id
786
+ */
787
+
788
+ var fetchCatInterfaceById = function fetchCatInterfaceById(catid, config) {
789
+ return __awaiter(void 0, void 0, void 0, function () {
790
+ var res, list;
791
+ return __generator(this, function (_a) {
792
+ switch (_a.label) {
793
+ case 0:
794
+ return [4
795
+ /*yield*/
796
+ , (0, exports.fetchApi)(constants_1.yapiApiCatInterfaceList, {
797
+ catid: catid,
798
+ page: 1,
799
+ limit: 5000
800
+ }, __assign(__assign({}, config), {
801
+ errorExit: false
802
+ }))];
803
+
804
+ case 1:
805
+ res = _a.sent();
806
+ list = res.list; // if (list.length) {
807
+ // const resList = await Promise.all(
808
+ // list.map(async item => fetchInterfaceById(item._id, { ...config, errorExit: false }))
809
+ // );
810
+ // return resList;
811
+ // }
812
+
813
+ return [2
814
+ /*return*/
815
+ , list];
816
+ }
817
+ });
818
+ });
819
+ };
820
+
821
+ exports.fetchCatInterfaceById = fetchCatInterfaceById;
822
+ /**
823
+ * 批量获取分类下的详细接口信息
824
+ * @param categoryList
825
+ * @param config
826
+ * @returns
827
+ */
828
+
829
+ var getInterfacesByCategoryIds = function getInterfacesByCategoryIds(categoryIds, config) {
830
+ return __awaiter(void 0, void 0, void 0, function () {
831
+ var res, allInterface, result;
832
+ return __generator(this, function (_a) {
833
+ switch (_a.label) {
834
+ case 0:
835
+ return [4
836
+ /*yield*/
837
+ , (0, helpers_1.autoAsyncSplitQueue)(categoryIds.map(function (id) {
838
+ return function () {
839
+ return __awaiter(void 0, void 0, void 0, function () {
840
+ var rr;
841
+ return __generator(this, function (_a) {
842
+ switch (_a.label) {
843
+ case 0:
844
+ return [4
845
+ /*yield*/
846
+ , (0, exports.fetchCatInterfaceById)(id, config)];
847
+
848
+ case 1:
849
+ rr = _a.sent();
850
+ return [2
851
+ /*return*/
852
+ , rr];
853
+ }
854
+ });
855
+ });
856
+ };
857
+ }))];
858
+
859
+ case 1:
860
+ res = _a.sent();
861
+ allInterface = res.flat();
862
+ return [4
863
+ /*yield*/
864
+ , (0, helpers_1.autoAsyncSplitQueue)(allInterface.map(function (j) {
865
+ return function () {
866
+ return __awaiter(void 0, void 0, void 0, function () {
867
+ var info;
868
+ return __generator(this, function (_a) {
869
+ switch (_a.label) {
870
+ case 0:
871
+ return [4
872
+ /*yield*/
873
+ , (0, exports.fetchInterfaceById)(j._id, config)];
874
+
875
+ case 1:
876
+ info = _a.sent();
877
+ return [2
878
+ /*return*/
879
+ , info];
880
+ }
881
+ });
882
+ });
883
+ };
884
+ }))];
885
+
886
+ case 2:
887
+ result = _a.sent();
888
+ return [2
889
+ /*return*/
890
+ , result.flat()];
891
+ }
892
+ });
893
+ });
894
+ };
895
+
896
+ exports.getInterfacesByCategoryIds = getInterfacesByCategoryIds;
897
+ /**
898
+ * 获取项目信息和接口
899
+ * @param config
900
+ * @returns
901
+ */
902
+
903
+ var getProjectInfoAndInterfaces = function getProjectInfoAndInterfaces(config) {
904
+ return __awaiter(void 0, void 0, void 0, function () {
905
+ var _a, categories, token, projectInfo, allInterfaceList, simpleProjectInfo, catList;
906
+
907
+ return __generator(this, function (_b) {
908
+ switch (_b.label) {
909
+ case 0:
910
+ _a = config.categories, categories = _a === void 0 ? [] : _a, token = config.token;
911
+ allInterfaceList = [];
912
+ if (!token) return [3
913
+ /*break*/
914
+ , 3];
915
+ return [4
916
+ /*yield*/
917
+ , (0, exports.fetchProjectInfo)(config)];
918
+
919
+ case 1:
920
+ simpleProjectInfo = _b.sent();
921
+ return [4
922
+ /*yield*/
923
+ , (0, exports.fetchProjectInfoById)(__assign(__assign({}, config), {
924
+ projectId: simpleProjectInfo._id
925
+ }))];
926
+
927
+ case 2:
928
+ projectInfo = _b.sent();
929
+ return [3
930
+ /*break*/
931
+ , 5];
932
+
933
+ case 3:
934
+ return [4
935
+ /*yield*/
936
+ , (0, exports.fetchProjectInfoById)(config)];
937
+
938
+ case 4:
939
+ projectInfo = _b.sent();
940
+ _b.label = 5;
941
+
942
+ case 5:
943
+ catList = ((projectInfo === null || projectInfo === void 0 ? void 0 : projectInfo.cat) || []).filter(function (item) {
944
+ return (categories === null || categories === void 0 ? void 0 : categories.findIndex(function (i) {
945
+ return i.id === item._id;
946
+ })) >= 0;
947
+ });
948
+ if (!(catList === null || catList === void 0 ? void 0 : catList.length)) return [3
949
+ /*break*/
950
+ , 7];
951
+ return [4
952
+ /*yield*/
953
+ , Promise.all(catList.map(function (item, index) {
954
+ return __awaiter(void 0, void 0, void 0, function () {
955
+ var interfaceList;
956
+ return __generator(this, function (_a) {
957
+ switch (_a.label) {
958
+ case 0:
959
+ return [4
960
+ /*yield*/
961
+ , (0, exports.getInterfacesByCategoryIds)([item._id], config)];
962
+
963
+ case 1:
964
+ interfaceList = _a.sent();
965
+ catList[index].list = interfaceList.map(function (kk) {
966
+ kk._category = (0, vtils_1.omit)(item, ['list']); // 追加分类信息
967
+
968
+ return kk;
969
+ });
970
+ return [2
971
+ /*return*/
972
+ ];
973
+ }
974
+ });
975
+ });
976
+ }))];
977
+
978
+ case 6:
979
+ _b.sent();
980
+
981
+ allInterfaceList = catList;
982
+ return [3
983
+ /*break*/
984
+ , 9];
985
+
986
+ case 7:
987
+ return [4
988
+ /*yield*/
989
+ , (0, exports.fetchInterfaceList)(__assign(__assign({}, config), {
990
+ token: token || projectInfo.token
991
+ }))];
992
+
993
+ case 8:
994
+ // 未配置,则全量生成,此时用export接口更高效
995
+ allInterfaceList = _b.sent();
996
+ _b.label = 9;
997
+
998
+ case 9:
999
+ return [2
1000
+ /*return*/
1001
+ , {
1002
+ projectInfo: projectInfo,
1003
+ allInterfaceList: allInterfaceList
1004
+ }];
1005
+ }
1006
+ });
1007
+ });
1008
+ };
1009
+
1010
+ exports.getProjectInfoAndInterfaces = getProjectInfoAndInterfaces;