UNPKG

4.23 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var child_process_1 = require("child_process");
5var es6_promisify_1 = require("es6-promisify");
6var fs = tslib_1.__importStar(require("fs-extra"));
7var chalk_1 = tslib_1.__importDefault(require("chalk"));
8var init_1 = require("./init");
9var wrappedExec = function (url, cb) { return child_process_1.exec(url, cb); };
10wrappedExec[es6_promisify_1.promisify.argumentNames] = ['error', 'stdout', 'stderr'];
11var 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/** 调用 jar,swagger => ts */
17function 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 /*yield*/, 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 /*return*/, java];
29 }
30 return [4 /*yield*/, parseSwagger(swaggerParser, clear)];
31 case 2: return [2 /*return*/, _a.sent()];
32 }
33 });
34 });
35}
36exports.default = swagger2ts;
37function 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 /*yield*/, asyncExec('java -version')];
42 case 1: return [2 /*return*/, _a.sent()];
43 }
44 });
45 });
46}
47function 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 /*yield*/, 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 /*return*/];
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 /*return*/, _a.sent()];
90 }
91 });
92 });
93}
94//# sourceMappingURL=swagger2ts.js.map
\No newline at end of file