sx-cli-tool
Version:
Laravel va Vue frameworklaridagi monolith arxitektura loyihalarni boshqarish uchun mo'ljallangan CLI tool
46 lines (45 loc) • 1.59 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateRoute = generateRoute;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const folder_1 = require("../../utils/folder");
function generateRoute(entityName, apiIdPlural, projectPath, groupName = "/admin", apiIdSingular) {
const routesPath = path_1.default.join(projectPath, "resources", "vue", "router", "routes", `${groupName.toLocaleLowerCase()}/${apiIdPlural}.ts`);
// Ensure the router directory exists
(0, folder_1.ensureDirectoryExists)(routesPath);
const routeTemplate = `
import { h, resolveComponent } from "vue";
export const ${apiIdSingular}Routes = {
path: "/${apiIdPlural}",
name: "${entityName}",
component: {
render() {
return h(resolveComponent("router-view"))
}
},
children: [
{
path: "",
name: "${entityName}Index",
component: () => import("@/pages${groupName}/${apiIdPlural}/Index.vue")
},
{
path: "create",
name: "${entityName}Create",
component: () => import("@/pages${groupName}/${apiIdPlural}/AddOrUpdate.vue")
},
{
path: ":id/update",
name: "${entityName}Edit",
component: () => import("@/pages${groupName}/${apiIdPlural}/AddOrUpdate.vue")
}
]
}
`;
fs_1.default.appendFileSync(routesPath, routeTemplate, "utf8");
console.log(`Route added to ${routesPath}`);
}