quickapi-cli
Version:
Esta librería se encargará de generar automáticamente clientes para consumir APIs a partir de descripciones como OpenAPI/Swagger o Postman.
2 lines • 1.5 kB
JavaScript
import minimist from"minimist";import chalk from"chalk";import fs from"fs";import generateClient from"./quickapi.min.js";const args=minimist(process.argv.slice(2)),clearInput=(e="")=>e.trim().toLowerCase(),showHelp=()=>{console.log(`\n ${chalk.bold("Uso:")} quickapi [opciones]\n\n ${chalk.cyan("Opciones:")}\n -h, --help Mostrar esta ayuda\n -f, --file <file> Archivo de entrada (obligatorio)\n -o, --output <path> Ruta de salida (por defecto: ./quickapi.min.js)\n -c, --client <client> Cliente HTTP a usar (axios o fetch)\n\n${chalk.cyan("Ejemplo:")}\n quickapi --file ./openapi.min.json --client axios --output ./api.ts\n`)};(async()=>{(args.h||args.help)&&(showHelp(),process.exit(0));const e=args.file||args.f,o=args.output?.trim()||args?.o.trim()||"./quickapi.min.js",r=clearInput(args.client||args.c||"axios");e||(console.error(chalk.red("❌ Error: Debes especificar un archivo de entrada con --file.")),showHelp(),process.exit(1)),fs.existsSync(e)||/^https?:\/\//i.test(e)||(console.error(chalk.red(`❌ Error: No se encontró el archivo "${e}".`)),process.exit(1));const s={filePath:e,output:o,client:r};try{console.log(chalk.blue(`⚙️ Generando cliente ${r.toUpperCase()} desde:`),e),await generateClient(s),console.log(chalk.green(`✅ Cliente generado correctamente en ${o}`))}catch(e){const o=e instanceof Error?e.message:String(e);console.error(chalk.red("❌ Error al generar el cliente:")),console.error(o),process.exit(1)}})();