yapi-to-typescript2 1.0.0
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/LICENSE +21 -0
- package/README.md +22 -0
- package/lib/cjs/Generator.js +1135 -0
- package/lib/cjs/SwaggerToYApiServer.js +336 -0
- package/lib/cjs/cli.js +285 -0
- package/lib/cjs/helpers.js +230 -0
- package/lib/cjs/index.js +19 -0
- package/lib/cjs/swaggerJsonToYApiData.js +496 -0
- package/lib/cjs/types.js +100 -0
- package/lib/cjs/utils.js +766 -0
- package/lib/esm/Generator.js +1111 -0
- package/lib/esm/SwaggerToYApiServer.js +317 -0
- package/lib/esm/cli.js +257 -0
- package/lib/esm/helpers.js +216 -0
- package/lib/esm/index.d.ts +845 -0
- package/lib/esm/index.js +2 -0
- package/lib/esm/swaggerJsonToYApiData.js +483 -0
- package/lib/esm/types.js +79 -0
- package/lib/esm/utils.js +707 -0
- package/package.json +114 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.SwaggerToYApiServer = void 0;
|
|
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 _getPort2 = _interopRequireDefault(require("get-port"));
|
|
15
|
+
|
|
16
|
+
var _http = _interopRequireDefault(require("http"));
|
|
17
|
+
|
|
18
|
+
var _signalExit = _interopRequireDefault(require("signal-exit"));
|
|
19
|
+
|
|
20
|
+
var _url = _interopRequireDefault(require("url"));
|
|
21
|
+
|
|
22
|
+
var _utils = require("./utils");
|
|
23
|
+
|
|
24
|
+
var _vtils = require("vtils");
|
|
25
|
+
|
|
26
|
+
var _swaggerJsonToYApiData = require("./swaggerJsonToYApiData");
|
|
27
|
+
|
|
28
|
+
var SwaggerToYApiServer = /*#__PURE__*/function () {
|
|
29
|
+
function SwaggerToYApiServer(options) {
|
|
30
|
+
this.options = options;
|
|
31
|
+
this.port = 0;
|
|
32
|
+
this.swaggerJson = {};
|
|
33
|
+
this.httpServer = null;
|
|
34
|
+
this.yapiData = {};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var _proto = SwaggerToYApiServer.prototype;
|
|
38
|
+
|
|
39
|
+
_proto.getPort = /*#__PURE__*/function () {
|
|
40
|
+
var _getPort = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
41
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
42
|
+
while (1) {
|
|
43
|
+
switch (_context.prev = _context.next) {
|
|
44
|
+
case 0:
|
|
45
|
+
if (!(this.port === 0)) {
|
|
46
|
+
_context.next = 4;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
_context.next = 3;
|
|
51
|
+
return (0, _getPort2.default)({
|
|
52
|
+
port: 50505
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
case 3:
|
|
56
|
+
this.port = _context.sent;
|
|
57
|
+
|
|
58
|
+
case 4:
|
|
59
|
+
return _context.abrupt("return", this.port);
|
|
60
|
+
|
|
61
|
+
case 5:
|
|
62
|
+
case "end":
|
|
63
|
+
return _context.stop();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}, _callee, this);
|
|
67
|
+
}));
|
|
68
|
+
|
|
69
|
+
function getPort() {
|
|
70
|
+
return _getPort.apply(this, arguments);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return getPort;
|
|
74
|
+
}();
|
|
75
|
+
|
|
76
|
+
_proto.getUrl = /*#__PURE__*/function () {
|
|
77
|
+
var _getUrl = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
78
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
79
|
+
while (1) {
|
|
80
|
+
switch (_context2.prev = _context2.next) {
|
|
81
|
+
case 0:
|
|
82
|
+
_context2.next = 2;
|
|
83
|
+
return this.getPort();
|
|
84
|
+
|
|
85
|
+
case 2:
|
|
86
|
+
_context2.t0 = _context2.sent;
|
|
87
|
+
return _context2.abrupt("return", "http://127.0.0.1:" + _context2.t0);
|
|
88
|
+
|
|
89
|
+
case 4:
|
|
90
|
+
case "end":
|
|
91
|
+
return _context2.stop();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}, _callee2, this);
|
|
95
|
+
}));
|
|
96
|
+
|
|
97
|
+
function getUrl() {
|
|
98
|
+
return _getUrl.apply(this, arguments);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return getUrl;
|
|
102
|
+
}();
|
|
103
|
+
|
|
104
|
+
_proto.getSwaggerJson = /*#__PURE__*/function () {
|
|
105
|
+
var _getSwaggerJson = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
106
|
+
var res;
|
|
107
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
108
|
+
while (1) {
|
|
109
|
+
switch (_context3.prev = _context3.next) {
|
|
110
|
+
case 0:
|
|
111
|
+
if (!(0, _vtils.isEmpty)(this.swaggerJson)) {
|
|
112
|
+
_context3.next = 5;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
_context3.next = 3;
|
|
117
|
+
return (0, _utils.httpGet)(this.options.swaggerJsonUrl);
|
|
118
|
+
|
|
119
|
+
case 3:
|
|
120
|
+
res = _context3.sent;
|
|
121
|
+
this.swaggerJson = res;
|
|
122
|
+
|
|
123
|
+
case 5:
|
|
124
|
+
return _context3.abrupt("return", this.swaggerJson);
|
|
125
|
+
|
|
126
|
+
case 6:
|
|
127
|
+
case "end":
|
|
128
|
+
return _context3.stop();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}, _callee3, this);
|
|
132
|
+
}));
|
|
133
|
+
|
|
134
|
+
function getSwaggerJson() {
|
|
135
|
+
return _getSwaggerJson.apply(this, arguments);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return getSwaggerJson;
|
|
139
|
+
}();
|
|
140
|
+
|
|
141
|
+
_proto.getYApiData = /*#__PURE__*/function () {
|
|
142
|
+
var _getYApiData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
143
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
144
|
+
while (1) {
|
|
145
|
+
switch (_context4.prev = _context4.next) {
|
|
146
|
+
case 0:
|
|
147
|
+
if (!(0, _vtils.isEmpty)(this.yapiData)) {
|
|
148
|
+
_context4.next = 8;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
_context4.t0 = _swaggerJsonToYApiData.swaggerJsonToYApiData;
|
|
153
|
+
_context4.next = 4;
|
|
154
|
+
return this.getSwaggerJson();
|
|
155
|
+
|
|
156
|
+
case 4:
|
|
157
|
+
_context4.t1 = _context4.sent;
|
|
158
|
+
_context4.next = 7;
|
|
159
|
+
return (0, _context4.t0)(_context4.t1);
|
|
160
|
+
|
|
161
|
+
case 7:
|
|
162
|
+
this.yapiData = _context4.sent;
|
|
163
|
+
|
|
164
|
+
case 8:
|
|
165
|
+
return _context4.abrupt("return", this.yapiData);
|
|
166
|
+
|
|
167
|
+
case 9:
|
|
168
|
+
case "end":
|
|
169
|
+
return _context4.stop();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}, _callee4, this);
|
|
173
|
+
}));
|
|
174
|
+
|
|
175
|
+
function getYApiData() {
|
|
176
|
+
return _getYApiData.apply(this, arguments);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return getYApiData;
|
|
180
|
+
}();
|
|
181
|
+
|
|
182
|
+
_proto.start = /*#__PURE__*/function () {
|
|
183
|
+
var _start = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
184
|
+
var _this = this;
|
|
185
|
+
|
|
186
|
+
var yapiData;
|
|
187
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
188
|
+
while (1) {
|
|
189
|
+
switch (_context7.prev = _context7.next) {
|
|
190
|
+
case 0:
|
|
191
|
+
_context7.next = 2;
|
|
192
|
+
return this.getYApiData();
|
|
193
|
+
|
|
194
|
+
case 2:
|
|
195
|
+
yapiData = _context7.sent;
|
|
196
|
+
_context7.next = 5;
|
|
197
|
+
return new Promise( /*#__PURE__*/function () {
|
|
198
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(resolve) {
|
|
199
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
200
|
+
while (1) {
|
|
201
|
+
switch (_context6.prev = _context6.next) {
|
|
202
|
+
case 0:
|
|
203
|
+
_context6.t0 = _http.default.createServer( /*#__PURE__*/function () {
|
|
204
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(req, res) {
|
|
205
|
+
var _url$parse, pathname;
|
|
206
|
+
|
|
207
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
208
|
+
while (1) {
|
|
209
|
+
switch (_context5.prev = _context5.next) {
|
|
210
|
+
case 0:
|
|
211
|
+
_url$parse = _url.default.parse(req.url || ''), pathname = _url$parse.pathname;
|
|
212
|
+
res.setHeader('Content-Type', 'application/json');
|
|
213
|
+
|
|
214
|
+
if (pathname.includes('/api/plugin/export')) {
|
|
215
|
+
res.end(JSON.stringify(yapiData.cats.map(function (cat) {
|
|
216
|
+
return (0, _extends2.default)({}, cat, {
|
|
217
|
+
list: yapiData.interfaces.filter(function (item) {
|
|
218
|
+
return item.catid === cat._id;
|
|
219
|
+
})
|
|
220
|
+
});
|
|
221
|
+
})));
|
|
222
|
+
} else if (pathname.includes('/api/interface/getCatMenu')) {
|
|
223
|
+
res.end(JSON.stringify({
|
|
224
|
+
errcode: 0,
|
|
225
|
+
errmsg: '成功!',
|
|
226
|
+
data: yapiData.cats
|
|
227
|
+
}));
|
|
228
|
+
} else if (pathname.includes('/api/project/get')) {
|
|
229
|
+
res.end(JSON.stringify({
|
|
230
|
+
errcode: 0,
|
|
231
|
+
errmsg: '成功!',
|
|
232
|
+
data: yapiData.project
|
|
233
|
+
}));
|
|
234
|
+
} else {
|
|
235
|
+
res.end('404');
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
case 3:
|
|
239
|
+
case "end":
|
|
240
|
+
return _context5.stop();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}, _callee5);
|
|
244
|
+
}));
|
|
245
|
+
|
|
246
|
+
return function (_x2, _x3) {
|
|
247
|
+
return _ref2.apply(this, arguments);
|
|
248
|
+
};
|
|
249
|
+
}());
|
|
250
|
+
_context6.next = 3;
|
|
251
|
+
return _this.getPort();
|
|
252
|
+
|
|
253
|
+
case 3:
|
|
254
|
+
_context6.t1 = _context6.sent;
|
|
255
|
+
|
|
256
|
+
_context6.t2 = function () {
|
|
257
|
+
(0, _signalExit.default)(function () {
|
|
258
|
+
return _this.stop();
|
|
259
|
+
});
|
|
260
|
+
resolve();
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
_this.httpServer = _context6.t0.listen.call(_context6.t0, _context6.t1, '127.0.0.1', _context6.t2);
|
|
264
|
+
|
|
265
|
+
case 6:
|
|
266
|
+
case "end":
|
|
267
|
+
return _context6.stop();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}, _callee6);
|
|
271
|
+
}));
|
|
272
|
+
|
|
273
|
+
return function (_x) {
|
|
274
|
+
return _ref.apply(this, arguments);
|
|
275
|
+
};
|
|
276
|
+
}());
|
|
277
|
+
|
|
278
|
+
case 5:
|
|
279
|
+
return _context7.abrupt("return", this.getUrl());
|
|
280
|
+
|
|
281
|
+
case 6:
|
|
282
|
+
case "end":
|
|
283
|
+
return _context7.stop();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}, _callee7, this);
|
|
287
|
+
}));
|
|
288
|
+
|
|
289
|
+
function start() {
|
|
290
|
+
return _start.apply(this, arguments);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
return start;
|
|
294
|
+
}();
|
|
295
|
+
|
|
296
|
+
_proto.stop = /*#__PURE__*/function () {
|
|
297
|
+
var _stop = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
298
|
+
var _this2 = this;
|
|
299
|
+
|
|
300
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
301
|
+
while (1) {
|
|
302
|
+
switch (_context8.prev = _context8.next) {
|
|
303
|
+
case 0:
|
|
304
|
+
return _context8.abrupt("return", new Promise(function (resolve, reject) {
|
|
305
|
+
if (!_this2.httpServer) {
|
|
306
|
+
resolve();
|
|
307
|
+
} else {
|
|
308
|
+
_this2.httpServer.close(function (err) {
|
|
309
|
+
if (err) {
|
|
310
|
+
reject(err);
|
|
311
|
+
} else {
|
|
312
|
+
resolve();
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}));
|
|
317
|
+
|
|
318
|
+
case 1:
|
|
319
|
+
case "end":
|
|
320
|
+
return _context8.stop();
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}, _callee8);
|
|
324
|
+
}));
|
|
325
|
+
|
|
326
|
+
function stop() {
|
|
327
|
+
return _stop.apply(this, arguments);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
return stop;
|
|
331
|
+
}();
|
|
332
|
+
|
|
333
|
+
return SwaggerToYApiServer;
|
|
334
|
+
}();
|
|
335
|
+
|
|
336
|
+
exports.SwaggerToYApiServer = SwaggerToYApiServer;
|
package/lib/cjs/cli.js
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
|
|
6
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
7
|
+
|
|
8
|
+
exports.__esModule = true;
|
|
9
|
+
exports.run = run;
|
|
10
|
+
|
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
+
|
|
13
|
+
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
14
|
+
|
|
15
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
|
+
|
|
17
|
+
var TSNode = _interopRequireWildcard(require("ts-node"));
|
|
18
|
+
|
|
19
|
+
var _consola = _interopRequireDefault(require("consola"));
|
|
20
|
+
|
|
21
|
+
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
22
|
+
|
|
23
|
+
var _ora = _interopRequireDefault(require("ora"));
|
|
24
|
+
|
|
25
|
+
var _path = _interopRequireDefault(require("path"));
|
|
26
|
+
|
|
27
|
+
var _prompts = _interopRequireDefault(require("prompts"));
|
|
28
|
+
|
|
29
|
+
var _yargs = _interopRequireDefault(require("yargs"));
|
|
30
|
+
|
|
31
|
+
var _vtils = require("vtils");
|
|
32
|
+
|
|
33
|
+
var _Generator = require("./Generator");
|
|
34
|
+
|
|
35
|
+
var _templateObject, _templateObject2;
|
|
36
|
+
|
|
37
|
+
TSNode.register({
|
|
38
|
+
// 不加载本地的 tsconfig.json
|
|
39
|
+
skipProject: true,
|
|
40
|
+
// 仅转译,不做类型检查
|
|
41
|
+
transpileOnly: true,
|
|
42
|
+
// 自定义编译选项
|
|
43
|
+
compilerOptions: {
|
|
44
|
+
strict: false,
|
|
45
|
+
target: 'es2017',
|
|
46
|
+
module: 'commonjs',
|
|
47
|
+
moduleResolution: 'node',
|
|
48
|
+
declaration: false,
|
|
49
|
+
removeComments: false,
|
|
50
|
+
esModuleInterop: true,
|
|
51
|
+
allowSyntheticDefaultImports: true,
|
|
52
|
+
importHelpers: false,
|
|
53
|
+
// 转换 js,支持在 ytt.config.js 里使用最新语法
|
|
54
|
+
allowJs: true,
|
|
55
|
+
lib: ['es2017']
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
function run(_x, _x2) {
|
|
60
|
+
return _run.apply(this, arguments);
|
|
61
|
+
}
|
|
62
|
+
/* istanbul ignore next */
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
function _run() {
|
|
66
|
+
_run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(cmd, options) {
|
|
67
|
+
var useCustomConfigFile, cwd, configTSFile, configJSFile, configFile, configFileExist, configTSFileExist, configJSFileExist, answers, outputConfigFile, outputConfigFileType, _answers, _config2, _config2$hooks, config, generator, spinner, _hooks, delayNotice, output, _spinner, _generator, _config, _config$hooks;
|
|
68
|
+
|
|
69
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
70
|
+
while (1) {
|
|
71
|
+
switch (_context.prev = _context.next) {
|
|
72
|
+
case 0:
|
|
73
|
+
useCustomConfigFile = false;
|
|
74
|
+
|
|
75
|
+
if (options != null && options.configFile) {
|
|
76
|
+
_context.next = 18;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
cwd = process.cwd();
|
|
81
|
+
configTSFile = _path.default.join(cwd, 'ytt.config.ts');
|
|
82
|
+
configJSFile = _path.default.join(cwd, 'ytt.config.js');
|
|
83
|
+
_context.next = 7;
|
|
84
|
+
return _fsExtra.default.pathExists(configTSFile);
|
|
85
|
+
|
|
86
|
+
case 7:
|
|
87
|
+
configTSFileExist = _context.sent;
|
|
88
|
+
_context.t0 = !configTSFileExist;
|
|
89
|
+
|
|
90
|
+
if (!_context.t0) {
|
|
91
|
+
_context.next = 13;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
_context.next = 12;
|
|
96
|
+
return _fsExtra.default.pathExists(configJSFile);
|
|
97
|
+
|
|
98
|
+
case 12:
|
|
99
|
+
_context.t0 = _context.sent;
|
|
100
|
+
|
|
101
|
+
case 13:
|
|
102
|
+
configJSFileExist = _context.t0;
|
|
103
|
+
configFileExist = configTSFileExist || configJSFileExist;
|
|
104
|
+
configFile = configTSFileExist ? configTSFile : configJSFile;
|
|
105
|
+
_context.next = 24;
|
|
106
|
+
break;
|
|
107
|
+
|
|
108
|
+
case 18:
|
|
109
|
+
useCustomConfigFile = true;
|
|
110
|
+
configFile = options.configFile;
|
|
111
|
+
cwd = _path.default.dirname(configFile);
|
|
112
|
+
_context.next = 23;
|
|
113
|
+
return _fsExtra.default.pathExists(configFile);
|
|
114
|
+
|
|
115
|
+
case 23:
|
|
116
|
+
configFileExist = _context.sent;
|
|
117
|
+
|
|
118
|
+
case 24:
|
|
119
|
+
if (!(cmd === 'help')) {
|
|
120
|
+
_context.next = 28;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
console.log("\n" + (0, _vtils.dedent)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n # \u7528\u6CD5\n \u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6: ytt init\n \u751F\u6210\u4EE3\u7801: ytt\n \u67E5\u770B\u5E2E\u52A9: ytt help\n\n # GitHub\n https://github.com/fjc0k/yapi-to-typescript\n "]))) + "\n");
|
|
125
|
+
_context.next = 87;
|
|
126
|
+
break;
|
|
127
|
+
|
|
128
|
+
case 28:
|
|
129
|
+
if (!(cmd === 'init')) {
|
|
130
|
+
_context.next = 51;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (!configFileExist) {
|
|
135
|
+
_context.next = 36;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
_consola.default.info("\u68C0\u6D4B\u5230\u914D\u7F6E\u6587\u4EF6: " + configFile);
|
|
140
|
+
|
|
141
|
+
_context.next = 33;
|
|
142
|
+
return (0, _prompts.default)({
|
|
143
|
+
message: '是否覆盖已有配置文件?',
|
|
144
|
+
name: 'override',
|
|
145
|
+
type: 'confirm'
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
case 33:
|
|
149
|
+
answers = _context.sent;
|
|
150
|
+
|
|
151
|
+
if (answers.override) {
|
|
152
|
+
_context.next = 36;
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return _context.abrupt("return");
|
|
157
|
+
|
|
158
|
+
case 36:
|
|
159
|
+
if (!useCustomConfigFile) {
|
|
160
|
+
_context.next = 41;
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
outputConfigFile = configFile;
|
|
165
|
+
outputConfigFileType = configFile.endsWith('.js') ? 'js' : 'ts';
|
|
166
|
+
_context.next = 46;
|
|
167
|
+
break;
|
|
168
|
+
|
|
169
|
+
case 41:
|
|
170
|
+
_context.next = 43;
|
|
171
|
+
return (0, _prompts.default)({
|
|
172
|
+
message: '选择配置文件类型?',
|
|
173
|
+
name: 'configFileType',
|
|
174
|
+
type: 'select',
|
|
175
|
+
choices: [{
|
|
176
|
+
title: 'TypeScript(ytt.config.ts)',
|
|
177
|
+
value: 'ts'
|
|
178
|
+
}, {
|
|
179
|
+
title: 'JavaScript(ytt.config.js)',
|
|
180
|
+
value: 'js'
|
|
181
|
+
}]
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
case 43:
|
|
185
|
+
_answers = _context.sent;
|
|
186
|
+
outputConfigFile = _answers.configFileType === 'js' ? configJSFile : configTSFile;
|
|
187
|
+
outputConfigFileType = _answers.configFileType;
|
|
188
|
+
|
|
189
|
+
case 46:
|
|
190
|
+
_context.next = 48;
|
|
191
|
+
return _fsExtra.default.outputFile(outputConfigFile, (0, _vtils.dedent)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n import { defineConfig } from 'yapi-to-typescript'\n\n export default defineConfig([\n {\n serverUrl: 'http://foo.bar',\n typesOnly: false,\n target: '", "',\n reactHooks: {\n enabled: false,\n },\n prodEnvName: 'production',\n outputFilePath: 'src/api/index.", "',\n requestFunctionFilePath: 'src/api/request.", "',\n dataKey: 'data',\n projects: [\n {\n token: 'hello',\n categories: [\n {\n id: 0,\n getRequestFunctionName(interfaceInfo, changeCase) {\n // \u4EE5\u63A5\u53E3\u5168\u8DEF\u5F84\u751F\u6210\u8BF7\u6C42\u51FD\u6570\u540D\n return changeCase.camelCase(interfaceInfo.path)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u5B58\u5728\u8BED\u6CD5\u5173\u952E\u8BCD\u62A5\u9519\u3001\u6216\u60F3\u901A\u8FC7\u67D0\u4E2A\u5173\u952E\u8BCD\u89E6\u53D1 IDE \u81EA\u52A8\u5F15\u5165\u63D0\u793A\uFF0C\u53EF\u8003\u8651\u52A0\u524D\u7F00\uFF0C\u5982:\n // return changeCase.camelCase(`api_${interfaceInfo.path}`)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u6709\u91CD\u590D\u62A5\u9519\uFF0C\u53EF\u8003\u8651\u5C06\u63A5\u53E3\u8BF7\u6C42\u65B9\u5F0F\u7EB3\u5165\u751F\u6210\u6761\u4EF6\uFF0C\u5982:\n // return changeCase.camelCase(`${interfaceInfo.method}_${interfaceInfo.path}`)\n },\n },\n ],\n },\n ],\n },\n ])\n "], ["\n import { defineConfig } from 'yapi-to-typescript'\n\n export default defineConfig([\n {\n serverUrl: 'http://foo.bar',\n typesOnly: false,\n target: '", "',\n reactHooks: {\n enabled: false,\n },\n prodEnvName: 'production',\n outputFilePath: 'src/api/index.", "',\n requestFunctionFilePath: 'src/api/request.", "',\n dataKey: 'data',\n projects: [\n {\n token: 'hello',\n categories: [\n {\n id: 0,\n getRequestFunctionName(interfaceInfo, changeCase) {\n // \u4EE5\u63A5\u53E3\u5168\u8DEF\u5F84\u751F\u6210\u8BF7\u6C42\u51FD\u6570\u540D\n return changeCase.camelCase(interfaceInfo.path)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u5B58\u5728\u8BED\u6CD5\u5173\u952E\u8BCD\u62A5\u9519\u3001\u6216\u60F3\u901A\u8FC7\u67D0\u4E2A\u5173\u952E\u8BCD\u89E6\u53D1 IDE \u81EA\u52A8\u5F15\u5165\u63D0\u793A\uFF0C\u53EF\u8003\u8651\u52A0\u524D\u7F00\uFF0C\u5982:\n // return changeCase.camelCase(\\`api_\\${interfaceInfo.path}\\`)\n\n // \u82E5\u751F\u6210\u7684\u8BF7\u6C42\u51FD\u6570\u540D\u6709\u91CD\u590D\u62A5\u9519\uFF0C\u53EF\u8003\u8651\u5C06\u63A5\u53E3\u8BF7\u6C42\u65B9\u5F0F\u7EB3\u5165\u751F\u6210\u6761\u4EF6\uFF0C\u5982:\n // return changeCase.camelCase(\\`\\${interfaceInfo.method}_\\${interfaceInfo.path}\\`)\n },\n },\n ],\n },\n ],\n },\n ])\n "])), outputConfigFileType === 'js' ? 'javascript' : 'typescript', outputConfigFileType, outputConfigFileType));
|
|
192
|
+
|
|
193
|
+
case 48:
|
|
194
|
+
_consola.default.success('写入配置文件完毕');
|
|
195
|
+
|
|
196
|
+
_context.next = 87;
|
|
197
|
+
break;
|
|
198
|
+
|
|
199
|
+
case 51:
|
|
200
|
+
if (configFileExist) {
|
|
201
|
+
_context.next = 53;
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return _context.abrupt("return", _consola.default.error("\u627E\u4E0D\u5230\u914D\u7F6E\u6587\u4EF6: " + (useCustomConfigFile ? configFile : configTSFile + " \u6216 " + configJSFile)));
|
|
206
|
+
|
|
207
|
+
case 53:
|
|
208
|
+
_consola.default.success("\u627E\u5230\u914D\u7F6E\u6587\u4EF6: " + configFile);
|
|
209
|
+
|
|
210
|
+
_context.prev = 54;
|
|
211
|
+
config = require(configFile).default;
|
|
212
|
+
generator = new _Generator.Generator(config, {
|
|
213
|
+
cwd: cwd
|
|
214
|
+
});
|
|
215
|
+
spinner = (0, _ora.default)('正在获取数据并生成代码...').start();
|
|
216
|
+
delayNotice = (0, _vtils.wait)(5000);
|
|
217
|
+
delayNotice.then(function () {
|
|
218
|
+
spinner.text = "\u6B63\u5728\u83B7\u53D6\u6570\u636E\u5E76\u751F\u6210\u4EE3\u7801... (\u82E5\u957F\u65F6\u95F4\u5904\u4E8E\u6B64\u72B6\u6001\uFF0C\u8BF7\u68C0\u67E5\u662F\u5426\u6709\u63A5\u53E3\u5B9A\u4E49\u7684\u6570\u636E\u8FC7\u5927\u5BFC\u81F4\u62C9\u53D6\u6216\u89E3\u6790\u7F13\u6162)";
|
|
219
|
+
});
|
|
220
|
+
_context.next = 62;
|
|
221
|
+
return generator.prepare();
|
|
222
|
+
|
|
223
|
+
case 62:
|
|
224
|
+
delayNotice.cancel();
|
|
225
|
+
_context.next = 65;
|
|
226
|
+
return generator.generate();
|
|
227
|
+
|
|
228
|
+
case 65:
|
|
229
|
+
output = _context.sent;
|
|
230
|
+
spinner.stop();
|
|
231
|
+
|
|
232
|
+
_consola.default.success('获取数据并生成代码完毕');
|
|
233
|
+
|
|
234
|
+
_context.next = 70;
|
|
235
|
+
return generator.write(output);
|
|
236
|
+
|
|
237
|
+
case 70:
|
|
238
|
+
_consola.default.success('写入文件完毕');
|
|
239
|
+
|
|
240
|
+
_context.next = 73;
|
|
241
|
+
return generator.destroy();
|
|
242
|
+
|
|
243
|
+
case 73:
|
|
244
|
+
_context.next = 75;
|
|
245
|
+
return (_hooks = config.hooks) == null ? void 0 : _hooks.success == null ? void 0 : _hooks.success();
|
|
246
|
+
|
|
247
|
+
case 75:
|
|
248
|
+
_context.next = 85;
|
|
249
|
+
break;
|
|
250
|
+
|
|
251
|
+
case 77:
|
|
252
|
+
_context.prev = 77;
|
|
253
|
+
_context.t1 = _context["catch"](54);
|
|
254
|
+
(_spinner = spinner) == null ? void 0 : _spinner.stop();
|
|
255
|
+
_context.next = 82;
|
|
256
|
+
return (_generator = generator) == null ? void 0 : _generator.destroy();
|
|
257
|
+
|
|
258
|
+
case 82:
|
|
259
|
+
_context.next = 84;
|
|
260
|
+
return (_config = config) == null ? void 0 : (_config$hooks = _config.hooks) == null ? void 0 : _config$hooks.fail == null ? void 0 : _config$hooks.fail();
|
|
261
|
+
|
|
262
|
+
case 84:
|
|
263
|
+
/* istanbul ignore next */
|
|
264
|
+
_consola.default.error(_context.t1);
|
|
265
|
+
|
|
266
|
+
case 85:
|
|
267
|
+
_context.next = 87;
|
|
268
|
+
return (_config2 = config) == null ? void 0 : (_config2$hooks = _config2.hooks) == null ? void 0 : _config2$hooks.complete == null ? void 0 : _config2$hooks.complete();
|
|
269
|
+
|
|
270
|
+
case 87:
|
|
271
|
+
case "end":
|
|
272
|
+
return _context.stop();
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}, _callee, null, [[54, 77]]);
|
|
276
|
+
}));
|
|
277
|
+
return _run.apply(this, arguments);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if (require.main === module) {
|
|
281
|
+
var argv = (0, _yargs.default)(process.argv).alias('c', 'config').argv;
|
|
282
|
+
run(argv._[2], {
|
|
283
|
+
configFile: argv.config ? _path.default.resolve(process.cwd(), argv.config) : undefined
|
|
284
|
+
});
|
|
285
|
+
}
|