UNPKG

menu-usuario-pantoja

Version:

Prueba Javascript

69 lines (58 loc) 2.52 kB
const menu = require('./menu') const prompts = require('prompts') const archivo = require('./gestionDeArchivos') const datosBusqueda = require('./datosBusqueda'); const datosPersonas = require('./datosPersonas'); const {of} = require('rxjs'); const {filter} = require('rxjs/operators'); async function elegirOpcion(){ const opcion = await prompts(menu.opcionesPrincipales); const nombresPersonas = await archivo.leer('personas.json', 'UTF-8'); ejecutarOperacion(operacionesDelMenu[opcion.value[0]],JSON.parse(nombresPersonas.informacion)); } elegirOpcion(); async function tomarInformacion(tipoDeInformacion){ return await prompts(tipoDeInformacion); }; const operacionesDelMenu = { listar : (nombresPersonas) => { const hayDatosDePersonas = nombresPersonas.length > 0; if(hayDatosDePersonas){ nombresPersonas.forEach((persona,indice) =>{ console.log(`${indice + 1}. ${persona.nombre} ${persona.apellido}`); });}else{ console.log('No hay Datos'); } elegirOpcion(); }, ingresar : async (nombresPersonas) =>{ const nombreIngresado = await tomarInformacion(datosPersonas); const hayDatos = nombreIngresado.nombre && nombreIngresado.apellido; if(hayDatos) { //console.log(nombresPersonas.informacion); const nuevaInfo = await nombresPersonas.informacion + " " + nombreIngresado.nombre + " " + nombreIngresado.apellido + "*"; //console.log('nuevainfo',nuevaInfo); nombresPersonas.push({nombre: nombreIngresado.nombre, apellido: nombreIngresado.apellido}); await archivo.escribir('personas.json', JSON.stringify(nombresPersonas,null, 2) ); // } elegirOpcion(); }, buscar: async (nombresPersonas)=>{ const datosPorBuscar = await tomarInformacion(datosBusqueda); console.log(datosPorBuscar); const busqueda$ = of(...nombresPersonas) .pipe( filter((valor) => valor.nombre.search(new RegExp(datosPorBuscar.buscar)) === 0 || valor.apellido.search(new RegExp(datosPorBuscar.buscar)) === 0 ) ).subscribe((resultado) => { console.log(resultado.nombre,resultado.apellido); }, (error) => { console.log(error); })}, salir: async () => { console.log('Adios!'); await process.exit(0);} }; function ejecutarOperacion(operacion,nombresPersonas){ return operacion(nombresPersonas); }