yapi-to-typescript2 1.0.1 → 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.
@@ -1,496 +1,439 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- exports.__esModule = true;
6
- exports.swaggerJsonToYApiData = swaggerJsonToYApiData;
7
-
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _dayjs = _interopRequireDefault(require("dayjs"));
15
-
16
- var _swaggerClient = _interopRequireDefault(require("swagger-client"));
17
-
18
- var _vtils = require("vtils");
19
-
20
2
  // @ts-nocheck
21
3
  // ref: https://github.com/YMFE/yapi/blob/master/exts/yapi-plugin-import-swagger/run.js
4
+ var __assign = (this && this.__assign) || function () {
5
+ __assign = Object.assign || function(t) {
6
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
7
+ s = arguments[i];
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
+ t[p] = s[p];
10
+ }
11
+ return t;
12
+ };
13
+ return __assign.apply(this, arguments);
14
+ };
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ var __generator = (this && this.__generator) || function (thisArg, body) {
25
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
+ function verb(n) { return function (v) { return step([n, v]); }; }
28
+ function step(op) {
29
+ if (f) throw new TypeError("Generator is already executing.");
30
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
+ 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;
32
+ if (y = 0, t) op = [op[0] & 2, t.value];
33
+ switch (op[0]) {
34
+ case 0: case 1: t = op; break;
35
+ case 4: _.label++; return { value: op[1], done: false };
36
+ case 5: _.label++; y = op[1]; op = [0]; continue;
37
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
+ default:
39
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
+ if (t[2]) _.ops.pop();
44
+ _.trys.pop(); continue;
45
+ }
46
+ op = body.call(thisArg, _);
47
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
+ }
50
+ };
51
+ var __importDefault = (this && this.__importDefault) || function (mod) {
52
+ return (mod && mod.__esModule) ? mod : { "default": mod };
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.swaggerJsonToYApiData = void 0;
56
+ var dayjs_1 = __importDefault(require("dayjs"));
57
+ var swagger_client_1 = __importDefault(require("swagger-client"));
58
+ var vtils_1 = require("vtils");
22
59
  var SwaggerData, isOAS3;
23
-
24
60
  function handlePath(path) {
25
- if (path === '/') return path;
26
-
27
- if (path.charAt(0) !== '/') {
28
- path = "/" + path;
29
- }
30
-
31
- if (path.charAt(path.length - 1) === '/') {
32
- path = path.substr(0, path.length - 1);
33
- }
34
-
35
- return path;
61
+ if (path === '/')
62
+ return path;
63
+ if (path.charAt(0) !== '/') {
64
+ path = "/".concat(path);
65
+ }
66
+ if (path.charAt(path.length - 1) === '/') {
67
+ path = path.substr(0, path.length - 1);
68
+ }
69
+ return path;
36
70
  }
37
-
38
71
  function openapi2swagger(data) {
39
- data.swagger = '2.0';
40
- (0, _vtils.each)(data.paths, function (apis) {
41
- (0, _vtils.each)(apis, function (api) {
42
- (0, _vtils.each)(api.responses, function (res) {
43
- if (res.content && res.content['application/json'] && typeof res.content['application/json'] === 'object') {
44
- Object.assign(res, res.content['application/json']);
45
- delete res.content;
46
- }
47
-
48
- if (res.content && res.content['application/hal+json'] && typeof res.content['application/hal+json'] === 'object') {
49
- Object.assign(res, res.content['application/hal+json']);
50
- delete res.content;
51
- }
52
-
53
- if (res.content && res.content['*/*'] && typeof res.content['*/*'] === 'object') {
54
- Object.assign(res, res.content['*/*']);
55
- delete res.content;
56
- }
57
- });
58
-
59
- if (api.requestBody) {
60
- if (!api.parameters) api.parameters = [];
61
- var body = {
62
- type: 'object',
63
- name: 'body',
64
- in: 'body'
65
- };
66
-
67
- try {
68
- body.schema = api.requestBody.content['application/json'].schema;
69
- } catch (e) {
70
- body.schema = {};
71
- }
72
-
73
- api.parameters.push(body);
74
- }
72
+ data.swagger = '2.0';
73
+ (0, vtils_1.each)(data.paths, function (apis) {
74
+ (0, vtils_1.each)(apis, function (api) {
75
+ (0, vtils_1.each)(api.responses, function (res) {
76
+ if (res.content &&
77
+ res.content['application/json'] &&
78
+ typeof res.content['application/json'] === 'object') {
79
+ Object.assign(res, res.content['application/json']);
80
+ delete res.content;
81
+ }
82
+ if (res.content &&
83
+ res.content['application/hal+json'] &&
84
+ typeof res.content['application/hal+json'] === 'object') {
85
+ Object.assign(res, res.content['application/hal+json']);
86
+ delete res.content;
87
+ }
88
+ if (res.content &&
89
+ res.content['*/*'] &&
90
+ typeof res.content['*/*'] === 'object') {
91
+ Object.assign(res, res.content['*/*']);
92
+ delete res.content;
93
+ }
94
+ });
95
+ if (api.requestBody) {
96
+ if (!api.parameters)
97
+ api.parameters = [];
98
+ var body = {
99
+ type: 'object',
100
+ name: 'body',
101
+ in: 'body',
102
+ };
103
+ try {
104
+ body.schema = api.requestBody.content['application/json'].schema;
105
+ }
106
+ catch (e) {
107
+ body.schema = {};
108
+ }
109
+ api.parameters.push(body);
110
+ }
111
+ });
75
112
  });
76
- });
77
- return data;
78
- }
79
-
80
- function handleSwaggerData(_x) {
81
- return _handleSwaggerData.apply(this, arguments);
113
+ return data;
82
114
  }
83
-
84
- function _handleSwaggerData() {
85
- _handleSwaggerData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {
86
- return _regenerator.default.wrap(function _callee$(_context) {
87
- while (1) {
88
- switch (_context.prev = _context.next) {
89
- case 0:
90
- return _context.abrupt("return", new Promise(function (resolve) {
91
- var data = (0, _swaggerClient.default)({
92
- spec: res
93
- });
94
- data.then(function (res) {
95
- resolve(res.spec);
96
- });
97
- }));
98
-
99
- case 1:
100
- case "end":
101
- return _context.stop();
102
- }
103
- }
104
- }, _callee);
105
- }));
106
- return _handleSwaggerData.apply(this, arguments);
115
+ function handleSwaggerData(res) {
116
+ return __awaiter(this, void 0, void 0, function () {
117
+ return __generator(this, function (_a) {
118
+ return [2 /*return*/, new Promise(function (resolve) {
119
+ var data = (0, swagger_client_1.default)({
120
+ spec: res,
121
+ });
122
+ data.then(function (res) {
123
+ resolve(res.spec);
124
+ });
125
+ })];
126
+ });
127
+ });
107
128
  }
108
-
109
- function run(_x2) {
110
- return _run.apply(this, arguments);
129
+ function run(res) {
130
+ return __awaiter(this, void 0, void 0, function () {
131
+ var interfaceData;
132
+ return __generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0:
135
+ interfaceData = { apis: [], cats: [], basePath: '', swaggerData: {} };
136
+ if (typeof res === 'string' && res) {
137
+ try {
138
+ res = JSON.parse(res);
139
+ }
140
+ catch (e) {
141
+ console.error('json 解析出错', e.message);
142
+ }
143
+ }
144
+ isOAS3 = res.openapi && String(res.openapi).startsWith('3.');
145
+ if (isOAS3) {
146
+ res = openapi2swagger(res);
147
+ }
148
+ return [4 /*yield*/, handleSwaggerData(res)];
149
+ case 1:
150
+ res = _a.sent();
151
+ SwaggerData = res;
152
+ interfaceData.swaggerData = SwaggerData;
153
+ interfaceData.basePath = res.basePath || '';
154
+ if (res.tags && Array.isArray(res.tags)) {
155
+ res.tags.forEach(function (tag) {
156
+ interfaceData.cats.push({
157
+ name: tag.name,
158
+ desc: tag.description,
159
+ });
160
+ });
161
+ }
162
+ else {
163
+ res.tags = [];
164
+ }
165
+ (0, vtils_1.each)(res.paths, function (apis, path) {
166
+ // parameters is common parameters, not a method
167
+ delete apis.parameters;
168
+ (0, vtils_1.each)(apis, function (api, method) {
169
+ api.path = path;
170
+ api.method = method;
171
+ var data = null;
172
+ try {
173
+ data = handleSwagger(api, res.tags);
174
+ if (data.catname) {
175
+ if (!(0, vtils_1.find)(interfaceData.cats, function (item) { return item.name === data.catname; })) {
176
+ if (res.tags.length === 0) {
177
+ interfaceData.cats.push({
178
+ name: data.catname,
179
+ desc: data.catname,
180
+ });
181
+ }
182
+ }
183
+ }
184
+ }
185
+ catch (err) {
186
+ data = null;
187
+ }
188
+ if (data) {
189
+ interfaceData.apis.push(data);
190
+ }
191
+ });
192
+ });
193
+ interfaceData.cats = interfaceData.cats.filter(function (catData) {
194
+ var catName = catData.name;
195
+ return (0, vtils_1.find)(interfaceData.apis, function (apiData) {
196
+ return apiData.catname === catName;
197
+ });
198
+ });
199
+ return [2 /*return*/, interfaceData];
200
+ }
201
+ });
202
+ });
111
203
  }
112
-
113
- function _run() {
114
- _run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(res) {
115
- var interfaceData;
116
- return _regenerator.default.wrap(function _callee2$(_context2) {
117
- while (1) {
118
- switch (_context2.prev = _context2.next) {
119
- case 0:
120
- interfaceData = {
121
- apis: [],
122
- cats: [],
123
- basePath: '',
124
- swaggerData: {}
125
- };
126
-
127
- if (typeof res === 'string' && res) {
128
- try {
129
- res = JSON.parse(res);
130
- } catch (e) {
131
- console.error('json 解析出错', e.message);
132
- }
204
+ function handleSwagger(data, originTags) {
205
+ if (originTags === void 0) { originTags = []; }
206
+ var api = {};
207
+ //处理基本信息
208
+ api.method = data.method.toUpperCase();
209
+ api.title = data.summary || data.path;
210
+ api.desc = data.description;
211
+ api.catname = null;
212
+ if (data.tags && Array.isArray(data.tags)) {
213
+ api.tag = data.tags;
214
+ var _loop_1 = function (i) {
215
+ if (/v[0-9.]+/.test(data.tags[i])) {
216
+ return "continue";
133
217
  }
134
-
135
- isOAS3 = res.openapi && String(res.openapi).startsWith('3.');
136
-
137
- if (isOAS3) {
138
- res = openapi2swagger(res);
218
+ // 如果根路径有 tags,使用根路径 tags,不使用每个接口定义的 tag 做完分类
219
+ if (originTags.length > 0 &&
220
+ (0, vtils_1.find)(originTags, function (item) {
221
+ return item.name === data.tags[i];
222
+ })) {
223
+ api.catname = data.tags[i];
224
+ return "break";
139
225
  }
140
-
141
- _context2.next = 6;
142
- return handleSwaggerData(res);
143
-
144
- case 6:
145
- res = _context2.sent;
146
- SwaggerData = res;
147
- interfaceData.swaggerData = SwaggerData;
148
- interfaceData.basePath = res.basePath || '';
149
-
150
- if (res.tags && Array.isArray(res.tags)) {
151
- res.tags.forEach(function (tag) {
152
- interfaceData.cats.push({
153
- name: tag.name,
154
- desc: tag.description
155
- });
156
- });
157
- } else {
158
- res.tags = [];
226
+ if (originTags.length === 0) {
227
+ api.catname = data.tags[i];
228
+ return "break";
159
229
  }
160
-
161
- (0, _vtils.each)(res.paths, function (apis, path) {
162
- // parameters is common parameters, not a method
163
- delete apis.parameters;
164
- (0, _vtils.each)(apis, function (api, method) {
165
- api.path = path;
166
- api.method = method;
167
- var data = null;
168
-
169
- try {
170
- data = handleSwagger(api, res.tags);
171
-
172
- if (data.catname) {
173
- if (!(0, _vtils.find)(interfaceData.cats, function (item) {
174
- return item.name === data.catname;
175
- })) {
176
- if (res.tags.length === 0) {
177
- interfaceData.cats.push({
178
- name: data.catname,
179
- desc: data.catname
180
- });
181
- }
182
- }
183
- }
184
- } catch (err) {
185
- data = null;
186
- }
187
-
188
- if (data) {
189
- interfaceData.apis.push(data);
190
- }
191
- });
192
- });
193
- interfaceData.cats = interfaceData.cats.filter(function (catData) {
194
- var catName = catData.name;
195
- return (0, _vtils.find)(interfaceData.apis, function (apiData) {
196
- return apiData.catname === catName;
197
- });
198
- });
199
- return _context2.abrupt("return", interfaceData);
200
-
201
- case 14:
202
- case "end":
203
- return _context2.stop();
230
+ };
231
+ for (var i = 0; i < data.tags.length; i++) {
232
+ var state_1 = _loop_1(i);
233
+ if (state_1 === "break")
234
+ break;
204
235
  }
205
- }
206
- }, _callee2);
207
- }));
208
- return _run.apply(this, arguments);
209
- }
210
-
211
- function handleSwagger(data, originTags) {
212
- if (originTags === void 0) {
213
- originTags = [];
214
- }
215
-
216
- var api = {}; //处理基本信息
217
-
218
- api.method = data.method.toUpperCase();
219
- api.title = data.summary || data.path;
220
- api.desc = data.description;
221
- api.catname = null;
222
-
223
- if (data.tags && Array.isArray(data.tags)) {
224
- api.tag = data.tags;
225
-
226
- var _loop = function _loop(i) {
227
- if (/v[0-9.]+/.test(data.tags[i])) {
228
- return "continue";
229
- } // 如果根路径有 tags,使用根路径 tags,不使用每个接口定义的 tag 做完分类
230
-
231
-
232
- if (originTags.length > 0 && (0, _vtils.find)(originTags, function (item) {
233
- return item.name === data.tags[i];
234
- })) {
235
- api.catname = data.tags[i];
236
- return "break";
237
- }
238
-
239
- if (originTags.length === 0) {
240
- api.catname = data.tags[i];
241
- return "break";
242
- }
243
- };
244
-
245
- for (var i = 0; i < data.tags.length; i++) {
246
- var _ret = _loop(i);
247
-
248
- if (_ret === "continue") continue;
249
- if (_ret === "break") break;
250
236
  }
251
- }
252
-
253
- api.path = handlePath(data.path);
254
- api.req_params = [];
255
- api.req_body_form = [];
256
- api.req_headers = [];
257
- api.req_query = [];
258
- api.req_body_type = 'raw';
259
- api.res_body_type = 'raw';
260
-
261
- if (data.produces && data.produces.indexOf('application/json') > -1) {
262
- api.res_body_type = 'json';
263
- api.res_body_is_json_schema = true;
264
- }
265
-
266
- if (data.consumes && Array.isArray(data.consumes)) {
267
- if (data.consumes.indexOf('application/x-www-form-urlencoded') > -1 || data.consumes.indexOf('multipart/form-data') > -1) {
268
- api.req_body_type = 'form';
269
- } else if (data.consumes.indexOf('application/json') > -1) {
270
- api.req_body_type = 'json';
271
- api.req_body_is_json_schema = true;
272
- }
273
- } //处理response
274
-
275
-
276
- api.res_body = handleResponse(data.responses);
277
-
278
- try {
279
- JSON.parse(api.res_body);
280
- api.res_body_type = 'json';
281
- api.res_body_is_json_schema = true;
282
- } catch (e) {
237
+ api.path = handlePath(data.path);
238
+ api.req_params = [];
239
+ api.req_body_form = [];
240
+ api.req_headers = [];
241
+ api.req_query = [];
242
+ api.req_body_type = 'raw';
283
243
  api.res_body_type = 'raw';
284
- } //处理参数
285
-
286
-
287
- function simpleJsonPathParse(key, json) {
288
- if (!key || typeof key !== 'string' || key.indexOf('#/') !== 0 || key.length <= 2) {
289
- return null;
244
+ if (data.produces && data.produces.indexOf('application/json') > -1) {
245
+ api.res_body_type = 'json';
246
+ api.res_body_is_json_schema = true;
290
247
  }
291
-
292
- var keys = key.substr(2).split('/');
293
- keys = keys.filter(function (item) {
294
- return item;
295
- });
296
-
297
- for (var _i = 0, l = keys.length; _i < l; _i++) {
298
- try {
299
- json = json[keys[_i]];
300
- } catch (e) {
301
- json = '';
302
- break;
303
- }
248
+ if (data.consumes && Array.isArray(data.consumes)) {
249
+ if (data.consumes.indexOf('application/x-www-form-urlencoded') > -1 ||
250
+ data.consumes.indexOf('multipart/form-data') > -1) {
251
+ api.req_body_type = 'form';
252
+ }
253
+ else if (data.consumes.indexOf('application/json') > -1) {
254
+ api.req_body_type = 'json';
255
+ api.req_body_is_json_schema = true;
256
+ }
257
+ }
258
+ //处理response
259
+ api.res_body = handleResponse(data.responses);
260
+ try {
261
+ JSON.parse(api.res_body);
262
+ api.res_body_type = 'json';
263
+ api.res_body_is_json_schema = true;
264
+ }
265
+ catch (e) {
266
+ api.res_body_type = 'raw';
304
267
  }
305
-
306
- return json;
307
- }
308
-
309
- if (data.parameters && Array.isArray(data.parameters)) {
310
- data.parameters.forEach(function (param) {
311
- if (param && typeof param === 'object' && param.$ref) {
312
- param = simpleJsonPathParse(param.$ref, {
313
- parameters: SwaggerData.parameters
268
+ //处理参数
269
+ function simpleJsonPathParse(key, json) {
270
+ if (!key ||
271
+ typeof key !== 'string' ||
272
+ key.indexOf('#/') !== 0 ||
273
+ key.length <= 2) {
274
+ return null;
275
+ }
276
+ var keys = key.substr(2).split('/');
277
+ keys = keys.filter(function (item) {
278
+ return item;
314
279
  });
315
- }
316
-
317
- var defaultParam = {
318
- name: param.name,
319
- desc: param.description,
320
- required: param.required ? '1' : '0'
321
- };
322
-
323
- if (param.in) {
324
- switch (param.in) {
325
- case 'path':
326
- defaultParam.type = param.type;
327
- api.req_params.push(defaultParam);
328
- break;
329
-
330
- case 'query':
331
- defaultParam.type = param.type;
332
- api.req_query.push(defaultParam);
333
- break;
334
-
335
- case 'body':
336
- handleBodyPamras(param.schema, api);
337
- break;
338
-
339
- case 'formData':
340
- defaultParam.type = param.type === 'file' ? 'file' : 'text';
341
-
342
- if (param.example) {
343
- defaultParam.example = param.example;
280
+ for (var i = 0, l = keys.length; i < l; i++) {
281
+ try {
282
+ json = json[keys[i]];
283
+ }
284
+ catch (e) {
285
+ json = '';
286
+ break;
344
287
  }
345
-
346
- api.req_body_form.push(defaultParam);
347
- break;
348
-
349
- case 'header':
350
- api.req_headers.push(defaultParam);
351
- break;
352
-
353
- default:
354
- break;
355
288
  }
356
- } else {
357
- api.req_query.push(defaultParam);
358
- }
359
- });
360
- }
361
-
362
- return api;
289
+ return json;
290
+ }
291
+ if (data.parameters && Array.isArray(data.parameters)) {
292
+ data.parameters.forEach(function (param) {
293
+ if (param && typeof param === 'object' && param.$ref) {
294
+ param = simpleJsonPathParse(param.$ref, {
295
+ parameters: SwaggerData.parameters,
296
+ });
297
+ }
298
+ var defaultParam = {
299
+ name: param.name,
300
+ desc: param.description,
301
+ required: param.required ? '1' : '0',
302
+ };
303
+ if (param.in) {
304
+ switch (param.in) {
305
+ case 'path':
306
+ defaultParam.type = param.type;
307
+ api.req_params.push(defaultParam);
308
+ break;
309
+ case 'query':
310
+ defaultParam.type = param.type;
311
+ api.req_query.push(defaultParam);
312
+ break;
313
+ case 'body':
314
+ handleBodyPamras(param.schema, api);
315
+ break;
316
+ case 'formData':
317
+ defaultParam.type = param.type === 'file' ? 'file' : 'text';
318
+ if (param.example) {
319
+ defaultParam.example = param.example;
320
+ }
321
+ api.req_body_form.push(defaultParam);
322
+ break;
323
+ case 'header':
324
+ api.req_headers.push(defaultParam);
325
+ break;
326
+ default:
327
+ break;
328
+ }
329
+ }
330
+ else {
331
+ api.req_query.push(defaultParam);
332
+ }
333
+ });
334
+ }
335
+ return api;
363
336
  }
364
-
365
337
  function isJson(json) {
366
- try {
367
- return JSON.parse(json);
368
- } catch (e) {
369
- return false;
370
- }
338
+ try {
339
+ return JSON.parse(json);
340
+ }
341
+ catch (e) {
342
+ return false;
343
+ }
371
344
  }
372
-
373
345
  function handleBodyPamras(data, api) {
374
- api.req_body_other = JSON.stringify(data, null, 2);
375
-
376
- if (isJson(api.req_body_other)) {
377
- api.req_body_type = 'json';
378
- api.req_body_is_json_schema = true;
379
- }
346
+ api.req_body_other = JSON.stringify(data, null, 2);
347
+ if (isJson(api.req_body_other)) {
348
+ api.req_body_type = 'json';
349
+ api.req_body_is_json_schema = true;
350
+ }
380
351
  }
381
-
382
352
  function handleResponse(api) {
383
- var res_body = '';
384
-
385
- if (!api || typeof api !== 'object') {
386
- return res_body;
387
- }
388
-
389
- var codes = Object.keys(api);
390
- var curCode;
391
-
392
- if (codes.length > 0) {
393
- if (codes.indexOf('200') > -1) {
394
- curCode = '200';
395
- } else curCode = codes[0];
396
-
397
- var res = api[curCode];
398
-
399
- if (res && typeof res === 'object') {
400
- if (res.schema) {
401
- res_body = JSON.stringify(res.schema, null, 2);
402
- } else if (res.description) {
403
- res_body = res.description;
404
- }
405
- } else if (typeof res === 'string') {
406
- res_body = res;
407
- } else {
408
- res_body = '';
353
+ var res_body = '';
354
+ if (!api || typeof api !== 'object') {
355
+ return res_body;
409
356
  }
410
- } else {
411
- res_body = '';
412
- }
413
-
414
- return res_body;
415
- }
416
-
417
- function swaggerJsonToYApiData(_x3) {
418
- return _swaggerJsonToYApiData.apply(this, arguments);
419
- }
420
-
421
- function _swaggerJsonToYApiData() {
422
- _swaggerJsonToYApiData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(data) {
423
- var _yapiData$swaggerData;
424
-
425
- var yapiData, currentTime, project, cats, interfaces;
426
- return _regenerator.default.wrap(function _callee3$(_context3) {
427
- while (1) {
428
- switch (_context3.prev = _context3.next) {
429
- case 0:
430
- _context3.next = 2;
431
- return run(data);
432
-
433
- case 2:
434
- yapiData = _context3.sent;
435
-
436
- // 兼容没有分类的情况
437
- if (!yapiData.cats.length) {
438
- yapiData.cats = [{
439
- name: 'default',
440
- desc: 'default'
441
- }];
442
- yapiData.apis.forEach(function (api) {
443
- api.catname = 'default';
444
- });
357
+ var codes = Object.keys(api);
358
+ var curCode;
359
+ if (codes.length > 0) {
360
+ if (codes.indexOf('200') > -1) {
361
+ curCode = '200';
362
+ }
363
+ else
364
+ curCode = codes[0];
365
+ var res = api[curCode];
366
+ if (res && typeof res === 'object') {
367
+ if (res.schema) {
368
+ res_body = JSON.stringify(res.schema, null, 2);
445
369
  }
446
-
447
- currentTime = (0, _dayjs.default)().unix();
448
- project = {
449
- _id: 0,
450
- name: yapiData.swaggerData.info.title,
451
- desc: yapiData.swaggerData.info.description || '',
452
- basepath: yapiData.swaggerData.basePath || '',
453
- tag: [],
454
- env: [{
455
- name: 'local',
456
- domain: (((_yapiData$swaggerData = yapiData.swaggerData.schemes) == null ? void 0 : _yapiData$swaggerData[0]) || 'http') + "://" + (yapiData.swaggerData.host || '127.0.0.1')
457
- }]
458
- };
459
- cats = yapiData.cats.map(function (cat, index) {
460
- return {
461
- _id: index + 1,
462
- name: cat.name,
463
- desc: cat.desc,
464
- add_time: currentTime,
465
- up_time: currentTime
466
- };
467
- });
468
- interfaces = yapiData.apis.map(function (api, index) {
469
- var _cats$find;
470
-
471
- return (0, _extends2.default)({}, api, {
472
- _id: index + 1,
473
- project_id: 0,
474
- catid: ((_cats$find = cats.find(function (cat) {
475
- return cat.name === api.catname;
476
- })) == null ? void 0 : _cats$find._id) || -1,
477
- tag: api.tag || [],
478
- add_time: currentTime,
479
- up_time: currentTime
480
- });
481
- });
482
- return _context3.abrupt("return", {
483
- project: project,
484
- cats: cats,
485
- interfaces: interfaces
486
- });
487
-
488
- case 9:
489
- case "end":
490
- return _context3.stop();
370
+ else if (res.description) {
371
+ res_body = res.description;
372
+ }
373
+ }
374
+ else if (typeof res === 'string') {
375
+ res_body = res;
376
+ }
377
+ else {
378
+ res_body = '';
491
379
  }
492
- }
493
- }, _callee3);
494
- }));
495
- return _swaggerJsonToYApiData.apply(this, arguments);
496
- }
380
+ }
381
+ else {
382
+ res_body = '';
383
+ }
384
+ return res_body;
385
+ }
386
+ function swaggerJsonToYApiData(data) {
387
+ var _a;
388
+ return __awaiter(this, void 0, void 0, function () {
389
+ var yapiData, currentTime, project, cats, interfaces;
390
+ return __generator(this, function (_b) {
391
+ switch (_b.label) {
392
+ case 0: return [4 /*yield*/, run(data)
393
+ // 兼容没有分类的情况
394
+ ];
395
+ case 1:
396
+ yapiData = _b.sent();
397
+ // 兼容没有分类的情况
398
+ if (!yapiData.cats.length) {
399
+ yapiData.cats = [
400
+ {
401
+ name: 'default',
402
+ desc: 'default',
403
+ },
404
+ ];
405
+ yapiData.apis.forEach(function (api) {
406
+ api.catname = 'default';
407
+ });
408
+ }
409
+ currentTime = (0, dayjs_1.default)().unix();
410
+ project = {
411
+ _id: 0,
412
+ name: yapiData.swaggerData.info.title,
413
+ desc: yapiData.swaggerData.info.description || '',
414
+ basepath: yapiData.swaggerData.basePath || '',
415
+ tag: [],
416
+ env: [
417
+ {
418
+ name: 'local',
419
+ domain: "".concat(((_a = yapiData.swaggerData.schemes) === null || _a === void 0 ? void 0 : _a[0]) || 'http', "://").concat(yapiData.swaggerData.host || '127.0.0.1'),
420
+ },
421
+ ],
422
+ };
423
+ cats = yapiData.cats.map(function (cat, index) { return ({
424
+ _id: index + 1,
425
+ name: cat.name,
426
+ desc: cat.desc,
427
+ add_time: currentTime,
428
+ up_time: currentTime,
429
+ }); });
430
+ interfaces = yapiData.apis.map(function (api, index) {
431
+ var _a;
432
+ return (__assign(__assign({}, api), { _id: index + 1, project_id: 0, catid: ((_a = cats.find(function (cat) { return cat.name === api.catname; })) === null || _a === void 0 ? void 0 : _a._id) || -1, tag: api.tag || [], add_time: currentTime, up_time: currentTime }));
433
+ });
434
+ return [2 /*return*/, { project: project, cats: cats, interfaces: interfaces }];
435
+ }
436
+ });
437
+ });
438
+ }
439
+ exports.swaggerJsonToYApiData = swaggerJsonToYApiData;