UNPKG

menu-usuario-pantoja

Version:

Prueba Javascript

105 lines (87 loc) 3.1 kB
//Hacer un programa que pida usar un nombre y que desea, /* ver lista de usuarios o registrar usuario Para listar los usuarios se usa un json con nombre y apellido del usuario Despues de registrar o listar vuelve al menu principal Esto se hace con callbacks y luego con promesas Siempre se debe ignorar el nodemodules */ const prompts = require('prompts'); const menu= require('./menu'); const datosPersonas = require('./datosPersonas'); const archivo = require('./gestionDeArchivos'); const prompts = require('prompts'); const nombresPersonas = [/*{nombre: 'Andres', apellido: 'Pantoja'}*/]; const opcionesPrincipales = { type: 'multiselect', name: 'value', message: '(Ctrl+C para volver al menu) Opcion elegida', choices: [ { title: 'Ingresar Datos Personales', value: 'ingresar', selected: true }, { title: 'Listar Datos Peronales', value: 'listar' }, { title: 'Salir', value: 'salir' } ], max: 1, hint: '- Espacio para seleccionar. Enter para aceptar. Ctrl+C para salir' } async function elegirOpcion(){ const opcion = await prompts(opcionesPrincipales); operacionesDelMenu(opcion.value[0],nombresPersonas); } const nombre = [ { type: 'text', name: 'nombre', message: 'Ingrese el nombre' }, { type: 'text', name: 'apellido', message: 'Ingrese el apellido' }, ]; async function tomarNombre(){ return await prompts(nombre); }; elegirOpcion(); //Promesas function operacionesDelMenu(operacion, nombresPersonas){ switch(operacion){ case 'listar': return new Promise ((resolve,reject)=>{ const hayDatosDePersonas = nombresPersonas.length > 0; if(hayDatosDePersonas){ resolve(nombresPersonas) }else { reject('No hay Datos'); } }).then((nombresPersonas) => { nombresPersonas.forEach((persona,indice) =>{ console.log(`${indice + 1}. ${persona.nombre} ${persona.apellido}`); }); elegirOpcion(); }).catch((mensajeDeError) => { console.log(mensajeDeError); elegirOpcion(); }); case 'ingresar': return new Promise(async (resolve, reject) => { const nombreIngresado = await tomarNombre(); const hayDatos = nombreIngresado.nombre && nombreIngresado.apellido; if(hayDatos) { resolve(nombreIngresado); }else{ reject('No hay Datos'); } }).then((nombreIngresado) => { nombresPersonas.push({nombre: nombreIngresado.nombre, apellido: nombreIngresado.apellido}) elegirOpcion(); }).catch((mensajeDeError) => { console.log(mensajeDeError); elegirOpcion(); }); case 'salir': console.log('Adios!'); process.exit(0); } }