UNPKG

tamim-cli

Version:

A CLI tool for generating module boilerplate code including routes, controllers, services, and more

62 lines (61 loc) 2.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = addFile; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const controller_1 = __importDefault(require("../service/addFile/files/controller")); const route_1 = __importDefault(require("../service/addFile/files/route")); const validation_1 = __importDefault(require("../service/addFile/files/validation")); const service_1 = __importDefault(require("../service/addFile/files/service")); const interface_1 = __importDefault(require("../service/addFile/files/interface")); const model_1 = __importDefault(require("../service/addFile/files/model")); const utils_1 = __importDefault(require("../service/addFile/files/utils")); const constants_1 = __importDefault(require("../service/addFile/files/constants")); function addFile(moduleFiles) { for (const file of moduleFiles) { const [modulePath, fileType] = file.split(":"); const moduleArray = modulePath.includes("/") ? modulePath.split("/") : [modulePath]; const moduleName = moduleArray[moduleArray.length - 1]; let content = ""; switch (fileType) { case "controller": content = (0, controller_1.default)(moduleName); break; case "route": content = (0, route_1.default)(moduleName); break; case "validation": content = (0, validation_1.default)(moduleName); break; case "service": content = (0, service_1.default)(moduleName); break; case "interface": content = (0, interface_1.default)(moduleName); break; case "model": content = (0, model_1.default)(moduleName); break; case "constant": content = (0, constants_1.default)(moduleName); break; case "utils": content = (0, utils_1.default)(moduleName); break; default: const capitalizedModuleName = moduleName[0].toUpperCase() + moduleName.slice(1); content = `// Define your ${fileType} logic here\nexport const ${capitalizedModuleName}${fileType} = {};`; } if (content) { const moduleDir = path_1.default.join(process.cwd(), "src", "app", "modules", ...moduleArray); fs_1.default.mkdirSync(moduleDir, { recursive: true }); const filePath = path_1.default.join(moduleDir, `${moduleName}.${fileType}.ts`); fs_1.default.writeFileSync(filePath, content, "utf8"); } } }