curso node argumentos con yargs

seria interesante enviar a nuestra apliacacion argumentos por linea de comandos de una forma standar
algo asi:
[operacion] [nombre parametro] [valor parametro]

app listar --base 5

o incluso usando un alias

app listar -b 5

como hacemos esto facilmente? usando YArgs

lo buscamos en la pagina de npm
https://www.npmjs.com/package/yargs

y lo instalamos:

npm i yargs --save

esto hara que en nuestro archivo package.json
se agregue a la seccion de dependencias:

"dependencies": { "yargs": "^12.0.1" }


entonces ya podemos usar yargs en nuestra aplicacion
const argv=require('yargs') .command('listar','imprime por consola la tabla de multiplicar', { base:{ demand: true, alias: 'b' }, limite:{ alias:'l', default:10 } }).argv; console.log(argv.base); console.log(argv.limite);

en el codigo anterior estamos definiendo el command "listar" con 2 argumentos
base y limite, donde base es obligatorio y limite tiene un valor por default si
es que no se le asigna ninguno.

vamos a crear en nuestro multiplicar.js una function llamada listarTabla
en la que se le envie la base y el limite
y solo nos muestre el resultado por consola.

entonces nos quedaria asi

let listarTabla=(base,limite)=>{ return new Promise((resolve,reject)=>{ if(!Number(base)){ reject(`el valor introducido ${base} no es un numero`); return; } if(!Number(limite)){ reject(`el valor introducido ${limite} no es un numero`); return; } let data=''; for(let i = 1; i <= limite; i++){ data += ` ${base} x ${i} = ${base*i} \n`; } resolve(data); }); };

lo exportamos
module.exports = { crearArchivo,listarTabla }

y lo usamos en nuestra app principal

const { crearArchivolistarTabla } = require('./multiplicar');
let comando=argv._[0]; switch(comando){ case 'listar': listarTabla(argv.base,argv.limite) .then(data=>console.log(data)) .catch(e=>console.log(e)); break; case 'crear': crearArchivo(argv.base) .then(archivo=>console.log(`archivo creado: ${archivo}`)) .catch(e=>console.log(e)); break; default: console.log('el comando no existe'); }

No hay comentarios:

Publicar un comentario

linux ubuntu mint actualizar chrome

 desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable