UNPKG

management-repository-viewer

Version:

CLI para visualizar y gestionar múltiples repositorios Git desde la terminal.

375 lines (374 loc) 12.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.addRepo = addRepo; exports.configFiltro = configFiltro; exports.configFiltroCodigo = configFiltroCodigo; exports.configFiltroTag = configFiltroTag; exports.configFiltroAlias = configFiltroAlias; exports.selecccionarOpcionesAbrir = selecccionarOpcionesAbrir; exports.selecccionarOpcionesParaFiltrar = selecccionarOpcionesParaFiltrar; exports.selecccionarMultipleProyectoAlias = selecccionarMultipleProyectoAlias; exports.selecccionarOpcionAgregarQuitar = selecccionarOpcionAgregarQuitar; exports.ingreseTag = ingreseTag; const inquirer_1 = __importDefault(require("inquirer")); const archivo_1 = require("./archivo"); const chalk_1 = __importDefault(require("chalk")); async function addRepo() { try { const { alias, repoPath, jerarquia, codigo } = await inquirer_1.default.prompt([ { type: "input", name: "alias", message: "Ingrese Alias (pk):", }, { type: "input", name: "repoPath", message: "Ingrese Path (Unique):", }, { type: "input", name: "jerarquia", message: "Ingrese Jerarquia:", }, { type: "input", name: "codigo", message: "Ingrese Código:", }, ]); const tags = []; while (true) { const { tag } = await inquirer_1.default.prompt([ { type: "input", name: "tag", message: "Ingrese tag (deje vacío para terminar):", }, ]); if (!tag) break; tags.push(tag); } return { path: repoPath, alias, tag: tags, jerarquia, codigo, }; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function configFiltro() { try { const { alias, jerarquia, codigo } = await inquirer_1.default.prompt([ { type: "input", name: "alias", message: "Ingrese Alias (pk):", }, { type: "input", name: "jerarquia", message: "Ingrese Jerarquia:", }, { type: "input", name: "codigo", message: "Ingrese Código:", }, ]); const tags = []; while (true) { const { tag } = await inquirer_1.default.prompt([ { type: "input", name: "tag", message: "Ingrese tag (deje vacío para terminar):", }, ]); if (!tag) break; tags.push(tag); } return { path: "", alias, tag: tags, jerarquia, codigo, }; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function configFiltroCodigo() { const listaRepos = await (0, archivo_1.obtenerReposConfiguracion)({ alias: "", jerarquia: "", codigo: "", tag: [], path: "", }); const listaCodigos = new Set(listaRepos.filter((repo) => repo.codigo).map(repo => repo.codigo)); // if (listaCodigos.size === 0) { // console.log('No hay códigos disponibles.'); // return; // } try { const { codigo } = await inquirer_1.default.prompt([ { type: "list", name: "codigo", message: "Seleccione Código:", choices: Array.from(listaCodigos), }, ]); return { path: "", alias: "", tag: [], jerarquia: "", codigo, }; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function configFiltroTag() { const listaRepos = await (0, archivo_1.obtenerReposConfiguracion)({ alias: "", jerarquia: "", codigo: "", tag: [], path: "", }); const listaTags = new Set(listaRepos.flatMap((x) => x.tag).filter((x) => x)); try { const { tag } = await inquirer_1.default.prompt([ { type: "list", name: "tag", message: "Seleccione Tag:", choices: Array.from(listaTags).sort((x, y) => x.localeCompare(y)), }, ]); return { path: "", alias: "", tag: [tag], jerarquia: "", codigo: "", }; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function configFiltroAlias() { const listaRepos = await (0, archivo_1.obtenerReposConfiguracion)({ alias: "", jerarquia: "", codigo: "", tag: [], path: "", }); const listaAlias = new Set(listaRepos.map((x) => x.alias)); try { const { alias } = await inquirer_1.default.prompt([ { type: "list", name: "alias", message: "Seleccione Alias:", choices: Array.from(listaAlias).sort((x, y) => x.localeCompare(y)), }, ]); return { path: "", alias: alias, tag: [], jerarquia: "", codigo: "", }; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function selecccionarOpcionesAbrir() { try { const { opcion } = await inquirer_1.default.prompt([ { type: "list", name: "opcion", message: "Seleccione Alias:", choices: ["explorer", "code"], }, ]); return opcion; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function selecccionarOpcionesParaFiltrar() { try { const { opcion } = await inquirer_1.default.prompt([ { type: "list", name: "opcion", message: "Seleccione opción para filtrar:", choices: ["Tag", "Codigo", "Sin Filtro"], }, ]); return opcion; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function selecccionarMultipleProyectoAlias(listaproyectos) { try { const listaSeleccionados = await inquirer_1.default.prompt([ { type: "checkbox", name: "opcion", message: "Selecciona los proyectos: ", choices: listaproyectos.map(x => ({ name: x.alias, value: x.alias })).sort((x, y) => x.name.localeCompare(y.name)), }, ]); return listaSeleccionados.opcion; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function selecccionarOpcionAgregarQuitar() { try { const { opcion } = await inquirer_1.default.prompt([ { type: "list", name: "opcion", message: "Que quieres hacer ?:", choices: ["Agregar", "Quitar"], }, ]); return opcion; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } } async function ingreseTag() { try { const { tag } = await inquirer_1.default.prompt([ { type: "input", name: "tag", message: "Ingrese tag:", }, ]); return tag; } catch (error) { if (error.isTtyError) { console.log(chalk_1.default.red("❌ La terminal no soporta prompts interactivos.")); } else if (error.message?.includes("User force closed")) { console.log(chalk_1.default.yellow("\n🛑 Operación cancelada por el usuario.")); } else { console.error(chalk_1.default.red("Ocurrió un error inesperado:"), error); } process.exit(1); } }