kdesign-ui
Version:
kd is from company of klx, it provide quickly genarator company inner business front structure
112 lines (111 loc) • 5.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var util_1 = require("util");
var fs_1 = tslib_1.__importDefault(require("fs"));
var art_template_1 = tslib_1.__importDefault(require("art-template"));
var axios_1 = tslib_1.__importDefault(require("axios"));
var path_1 = tslib_1.__importDefault(require("path"));
var chalk_1 = tslib_1.__importDefault(require("chalk"));
var gen_1 = require("../utils/gen");
var readFile = util_1.promisify(fs_1.default.readFile);
var writeFile = util_1.promisify(fs_1.default.writeFile);
var mkdir = util_1.promisify(fs_1.default.mkdir);
var access = util_1.promisify(fs_1.default.access);
var serialize = function (arr, res, i) {
if (arr === void 0) { arr = []; }
if (res === void 0) { res = {}; }
arr.forEach(function (item, idx) {
res = !item.name && !res.length ? [] : res;
if (item.data && Array.isArray(item.data) && item.data.length) {
res[item.name || idx] = serialize(item.data, void 0, idx);
return res;
}
res[item.name] = item.example;
return res;
});
return res;
};
var mkdirHandler = function (dir) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var fileExist, err_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
fileExist = true;
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, access(dir)];
case 2:
_a.sent();
return [3 /*break*/, 4];
case 3:
err_1 = _a.sent();
fileExist = false;
return [3 /*break*/, 4];
case 4:
if (!!fileExist) return [3 /*break*/, 6];
console.log(dir);
return [4 /*yield*/, mkdir(dir)];
case 5:
_a.sent();
_a.label = 6;
case 6: return [2 /*return*/];
}
});
}); };
var rules = gen_1.fieldType;
function default_1(code, proxy, downPath) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var indexTpl, modelTpl, requestTpl, utilsTpl, data, template, modelTemplate, requestTemplate;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, readFile(__dirname + "/template/index.js")];
case 1:
indexTpl = _a.sent();
return [4 /*yield*/, readFile(__dirname + "/template/model/index.js")];
case 2:
modelTpl = _a.sent();
return [4 /*yield*/, readFile(__dirname + "/template/request.js")];
case 3:
requestTpl = _a.sent();
return [4 /*yield*/, readFile(__dirname + "/template/model/utils.js")];
case 4:
utilsTpl = _a.sent();
return [4 /*yield*/, axios_1.default(proxy).then(function (res) { return res.data; })];
case 5:
data = _a.sent();
{
data.data.definition.forEach(function (item) {
item.outputParam = serialize(item.outputParam);
});
}
template = art_template_1.default.compile(indexTpl.toString())(Object.assign(data.data, {
rules: rules
}));
modelTemplate = art_template_1.default.compile(modelTpl.toString())(Object.assign(data.data, {
JSON: JSON,
Array: Array,
gen: new gen_1.GenParams
}));
requestTemplate = art_template_1.default.compile(requestTpl.toString())(Object.assign(data.data, {
rules: rules
}));
return [4 /*yield*/, mkdirHandler(path_1.default.resolve("" + downPath, 'interface'))];
case 6:
_a.sent();
return [4 /*yield*/, mkdirHandler(path_1.default.resolve("" + downPath, 'interface/model'))];
case 7:
_a.sent();
writeFile("" + path_1.default.resolve(downPath, 'interface/request.js'), requestTemplate.replace(/\n\s+$/mg, ''));
writeFile("" + path_1.default.resolve(downPath, 'interface/model/index.js'), modelTemplate.replace(/\n\s+$/mg, '').replace(/\&\#34;/g, '"').replace(/['"](Number|String|Boolean|Date|Object|Array)['"]/g, '$1'));
writeFile("" + path_1.default.resolve(downPath, 'interface/index.js'), template.replace(/\n\s+$/mg, ''));
writeFile("" + path_1.default.resolve(downPath, 'interface/model/utils.js'), utilsTpl);
console.log(chalk_1.default.greenBright("\u751F\u6210\u5B8C\u6210\uFF0C\u8BF7\u5230" + path_1.default.resolve(downPath + "/interface") + "\u4E0B\u67E5\u770B"));
return [2 /*return*/];
}
});
});
}
exports.default = default_1;