1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var child_process_1 = require("child_process");
|
5 | var es6_promisify_1 = require("es6-promisify");
|
6 | var fs = tslib_1.__importStar(require("fs-extra"));
|
7 | var chalk_1 = tslib_1.__importDefault(require("chalk"));
|
8 | var init_1 = require("./init");
|
9 | var wrappedExec = function (url, cb) { return child_process_1.exec(url, cb); };
|
10 | wrappedExec[es6_promisify_1.promisify.argumentNames] = ['error', 'stdout', 'stderr'];
|
11 | var asyncExec = function (cmd) {
|
12 | return es6_promisify_1.promisify(wrappedExec)(cmd).then(function (res) {
|
13 | return res.error ? { code: 1, message: res.stderr || res.error } : { code: 0, message: res.stdout };
|
14 | }, function (err) { return ({ code: 1, message: err.message }); });
|
15 | };
|
16 |
|
17 | function swagger2ts(swaggerParser, clear) {
|
18 | if (clear === void 0) { clear = false; }
|
19 | return tslib_1.__awaiter(this, void 0, void 0, function () {
|
20 | var java;
|
21 | return tslib_1.__generator(this, function (_a) {
|
22 | switch (_a.label) {
|
23 | case 0: return [4 , checkJava()];
|
24 | case 1:
|
25 | java = _a.sent();
|
26 | if (java.code) {
|
27 | console.log(chalk_1.default.red("[ERROR]: check java failed with " + java.message));
|
28 | return [2 , java];
|
29 | }
|
30 | return [4 , parseSwagger(swaggerParser, clear)];
|
31 | case 2: return [2 , _a.sent()];
|
32 | }
|
33 | });
|
34 | });
|
35 | }
|
36 | exports.default = swagger2ts;
|
37 | function checkJava() {
|
38 | return tslib_1.__awaiter(this, void 0, void 0, function () {
|
39 | return tslib_1.__generator(this, function (_a) {
|
40 | switch (_a.label) {
|
41 | case 0: return [4 , asyncExec('java -version')];
|
42 | case 1: return [2 , _a.sent()];
|
43 | }
|
44 | });
|
45 | });
|
46 | }
|
47 | function parseSwagger(config, clear) {
|
48 | if (clear === void 0) { clear = false; }
|
49 | return tslib_1.__awaiter(this, void 0, void 0, function () {
|
50 | var _this = this;
|
51 | return tslib_1.__generator(this, function (_a) {
|
52 | switch (_a.label) {
|
53 | case 0: return [4 , new Promise(function (rs, rj) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
54 | return tslib_1.__generator(this, function (_a) {
|
55 | if (clear) {
|
56 | try {
|
57 | fs.removeSync(config['-o'] + "/api");
|
58 | fs.removeSync(config['-o'] + "/model");
|
59 | rs({ code: 0 });
|
60 | }
|
61 | catch (e) {
|
62 | rj({
|
63 | code: 500,
|
64 | message: e.message
|
65 | });
|
66 | }
|
67 | }
|
68 | else {
|
69 | rs({ code: 0 });
|
70 | }
|
71 | return [2 ];
|
72 | });
|
73 | }); })
|
74 | .then(function () {
|
75 | return asyncExec("java -jar " + init_1.generatorPath + " generate " + Object.keys(config)
|
76 | .map(function (opt) { return opt + " " + config[opt]; })
|
77 | .join(' '));
|
78 | }, function (e) { return e; })
|
79 | .then(function (res) {
|
80 | if (res.code) {
|
81 | return Promise.reject(res);
|
82 | }
|
83 | return Promise.resolve(res);
|
84 | })
|
85 | .catch(function (e) { return ({
|
86 | code: 6,
|
87 | message: "[ERROR]: gen failed from " + config['-i'] + " with " + e.message
|
88 | }); })];
|
89 | case 1: return [2 , _a.sent()];
|
90 | }
|
91 | });
|
92 | });
|
93 | }
|
94 |
|
\ | No newline at end of file |