UNPKG

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
#!/usr/bin/env node "use strict"; 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;