hotshot-mod-manager
Version:
57 lines (50 loc) • 1.85 kB
JavaScript
import chalk from "chalk";
import inquirer from "inquirer";
import { cacheDriverCreator } from "./contents/cache-driver-creator.js";
import { routerModuleCreator } from "./contents/mod-creator.js";
import { generateOpenApiSpecContent } from "./contents/open-api-specs-creator.js";
import { cleanupString } from "./main.js";
export async function routerModuleGen() {
const { moduleName, nextStep } = await inquirer.prompt([
{
type: "input",
name: "moduleName",
message: "Enter the name of the module:",
validate: (input) => input.trim() ? true : "Module name cannot be empty.",
},
{
type: "list",
name: "nextStep",
message: "Need any extra resources? (OpenAPI Specs, Cache Drivers)",
choices: ["Generate Module For Now", "Select Extra Resources"],
},
]);
if (moduleName && nextStep === "Generate Module For Now") {
await routerModuleCreator(moduleName);
}
if (moduleName && nextStep === "Select Extra Resources") {
const { extraResources } = await inquirer.prompt([
{
type: "checkbox",
name: "extraResources",
message: "Select extra resources to include: \n",
choices: [
"Add Cache Driver",
"Add Open API Specs",
],
},
]);
if (moduleName) {
await routerModuleCreator(cleanupString(moduleName));
console.log(chalk.blueBright("Router Module Created!"));
}
if (moduleName && extraResources.includes("Add Cache Driver")) {
await cacheDriverCreator(cleanupString(moduleName));
console.log(chalk.blueBright("Cache Driver Created!"));
}
if (moduleName && extraResources.includes("Add Open API Specs")) {
await generateOpenApiSpecContent(cleanupString(moduleName));
console.log(chalk.blueBright("Open API Specs Created!"));
}
}
}