UNPKG

wallet-generate

Version:
139 lines 7.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var fs_1 = require("fs"); var path_1 = tslib_1.__importDefault(require("path")); var chalk_1 = tslib_1.__importDefault(require("chalk")); var utils_1 = require("./utils"); var entity_1 = tslib_1.__importDefault(require("./model/entity")); var dto_1 = tslib_1.__importDefault(require("./model/dto")); var serviceFace_1 = tslib_1.__importDefault(require("./model/serviceFace")); var repository_1 = tslib_1.__importDefault(require("./api/repository")); var service_1 = tslib_1.__importDefault(require("./api/service")); var service_impl_1 = tslib_1.__importDefault(require("./api/service-impl")); var controller_1 = tslib_1.__importDefault(require("./api/controller")); var message_1 = require("./message"); exports.default = (function (config) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var outDir, _a, name, description, importCode, entityCode, dtoCode, serviceFaceCode, repositoryCode, serviceCode, serviceImplCode, controllerCode, en_message, zh_message, modelDir, apiDir, messageDir; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: // 强制给实体字段加上 id 和 createTime列 config.entity.columns = tslib_1.__spreadArrays([ { name: "id", type: "Long", desc: "id", }, { name: "createTime", type: "Date", desc: "创建时间", }, { name: "version", type: "int", desc: "乐观锁", nullable: true, } ], config.entity.columns.filter(function (x) { return x.name !== "id" && x.name !== "createTime" && x.name !== "version"; })); outDir = path_1.default.resolve(fs_1.realpathSync(process.cwd()), "./dist"); _a = config.entity, name = _a.name, description = _a.description; console.log(chalk_1.default.white("============= " + name + "(" + description + ") ============= ")); importCode = utils_1.extractTypeImport(config); entityCode = utils_1.insetImportCode(entity_1.default(config), importCode); console.log(chalk_1.default.blue("* Create Entity")); dtoCode = dto_1.default(config); console.log(chalk_1.default.blue("* Create Dto")); serviceFaceCode = serviceFace_1.default(config); console.log(chalk_1.default.blue("* Create ServiceFace")); repositoryCode = repository_1.default(config); console.log(chalk_1.default.green("* Create Repository")); serviceCode = service_1.default(config); console.log(chalk_1.default.green("* Create Service")); serviceImplCode = service_impl_1.default(config); console.log(chalk_1.default.green("* Create ServiceImpl")); controllerCode = controller_1.default(config); console.log(chalk_1.default.green("* Create Controller")); en_message = message_1.makeI18nMessage_en(config); zh_message = message_1.makeI18nMessage_zh(config); console.log(chalk_1.default.cyan("----> 开始写入文件")); modelDir = path_1.default.join(outDir, "model"); return [4 /*yield*/, codeToFile(path_1.default.join(modelDir, "./entity/" + name + ".java"), entityCode)]; case 1: _b.sent(); return [4 /*yield*/, codeToFile(path_1.default.join(modelDir, "./dto/" + name + "Dto.java"), dtoCode)]; case 2: _b.sent(); return [4 /*yield*/, codeToFile(path_1.default.join(modelDir, "./service/" + name + "ServiceFace.java"), serviceFaceCode)]; case 3: _b.sent(); apiDir = path_1.default.join(outDir, "api"); return [4 /*yield*/, codeToFile(path_1.default.join(apiDir, "./repository/" + name + "Repository.java"), repositoryCode)]; case 4: _b.sent(); return [4 /*yield*/, codeToFile(path_1.default.join(apiDir, "./service/" + name + "Service.java"), serviceCode)]; case 5: _b.sent(); return [4 /*yield*/, codeToFile(path_1.default.join(apiDir, "./service/impl/" + name + "ServiceImpl.java"), serviceImplCode)]; case 6: _b.sent(); return [4 /*yield*/, codeToFile(path_1.default.join(apiDir, "./controller/" + name + "Controller.java"), controllerCode)]; case 7: _b.sent(); messageDir = path_1.default.join(outDir, "message"); // 存在则追加,不存在则创建 return [4 /*yield*/, codeAppendFile(path_1.default.join(messageDir, "./message_en_US.properties"), en_message)]; case 8: // 存在则追加,不存在则创建 _b.sent(); return [4 /*yield*/, codeAppendFile(path_1.default.join(messageDir, "./message_zh_CN.properties"), zh_message)]; case 9: _b.sent(); console.log(chalk_1.default.cyan("----> 开始完毕")); return [2 /*return*/, Promise.resolve()]; } }); }); }); /** * 写入文件 * @param file 文件路径 * @param code 代码 */ function codeToFile(file, code) { console.log("Create File ", file); utils_1.mkdirs(path_1.default.dirname(file)); return fs_1.promises.writeFile(file, code, { encoding: "utf-8" }); } exports.codeToFile = codeToFile; /** * 追加文件 * @param file * @param code */ function codeAppendFile(file, code) { return tslib_1.__awaiter(this, void 0, void 0, function () { var content; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: console.log("Append File ", file); utils_1.mkdirs(path_1.default.dirname(file)); if (!fs_1.existsSync(file)) return [3 /*break*/, 2]; return [4 /*yield*/, fs_1.promises.readFile(file, { encoding: "utf-8" })]; case 1: content = _a.sent(); if (content.indexOf(code) !== -1) { // 存在则不追加 return [2 /*return*/]; } return [2 /*return*/, codeToFile(file, content + "\n" + code)]; case 2: // 不存在则创建 return [2 /*return*/, codeToFile(file, code)]; } }); }); } exports.codeAppendFile = codeAppendFile; //# sourceMappingURL=index.js.map