UNPKG

sx-cli-tool

Version:

Laravel va Vue frameworklaridagi monolith arxitektura loyihalarni boshqarish uchun mo'ljallangan CLI tool

53 lines (52 loc) 2.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateRoute = generateRoute; const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); const formatter_1 = require("../../utils/formatter"); const prettier_1 = require("../../utils/prettier"); function generateRoute(entityName, apiIdPlural, projectPath, groupName = "/admin") { const routePath = path_1.default.join(projectPath, "routes", "api.php"); const template = `use App\\Http\\Controllers${(0, formatter_1.replaceSlashes)(groupName)}\\${entityName}Controller; // ${apiIdPlural} ro'yxatini olish Route::get('${groupName.toLocaleLowerCase()}/${apiIdPlural}', [${entityName}Controller::class, 'index']); // Yangi ${entityName.toLocaleLowerCase()} qo'shish Route::post('${groupName.toLocaleLowerCase()}/${apiIdPlural}', [${entityName}Controller::class, 'store']); // Muayyan ${entityName.toLocaleLowerCase()} olish Route::get('${groupName.toLocaleLowerCase()}/${apiIdPlural}/{id}', [${entityName}Controller::class, 'show']); // Muayyan ${entityName.toLocaleLowerCase()} yangilash Route::put('${groupName.toLocaleLowerCase()}/${apiIdPlural}/{id}', [${entityName}Controller::class, 'update']); // Muayyan ${entityName.toLocaleLowerCase()} o'chirish Route::delete('${groupName.toLocaleLowerCase()}/${apiIdPlural}/{id}', [${entityName}Controller::class, 'destroy']); `; // Faylni o'qish va qo'shish fs_1.default.readFile(routePath, "utf8", (err, data) => { if (err) { console.error("Faylni o'qishda xato:", err); return; } // Agar mavjud bo'lsa, kodni tekshirish if (!data.includes("use App\\Http\\Controllers\\" + (0, formatter_1.replaceSlashes)(groupName) + "\\" + entityName + "Controller;")) { // Faylga yangi marshrutni qo'shish const updatedData = `${data.trim()}\n${template.trim()}\n`; fs_1.default.writeFile(routePath, updatedData, "utf8", (err) => { if (err) { console.error("Faylni yangilashda xato:", err); return; } console.log("Marshrut muvaffaqiyatli qo'shildi!"); (0, prettier_1.formatPhpFile)(routePath); }); } else { console.log("Marshrut allaqachon mavjud."); } }); }