1+ /*
2+ * EJERCICIO:
3+ * Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra
4+ * un ejemplo con cada nivel de "severidad" disponible.
5+ */
6+
7+ let x = 5
8+ console . assert ( x > 10 , "El valor de x no es mayor que 10" )
9+
10+ console . clear ( )
11+
12+ console . log ( "Este es un mensaje de log" )
13+
14+ console . info ( "Información: el programa ha iniciado correctamente" )
15+
16+ console . warn ( "Advertencia: estás a punto de alcanzar el límite de uso" )
17+
18+ console . error ( "Error: el archivo no pudo ser encontrado" )
19+
20+ console . debug ( "Debug: se está calculando el valor" )
21+
22+ function greeting ( user ) {
23+ console . count ( "Llamadas a greeting" )
24+ return `Hi ${ user } `
25+ }
26+
27+ greeting ( 'user_1' )
28+ greeting ( 'user_1' )
29+ greeting ( 'user_1' )
30+
31+ console . countReset ( "Llamadas a greeting" )
32+ greeting ( 'user_1' )
33+
34+ function addition ( a , b ) {
35+ console . debug ( "Debug: calculando el total de " , a , b )
36+ return a + b
37+ }
38+
39+ addition ( 1 , 2 )
40+
41+ let users = {
42+ name : "Victor" ,
43+ age : 21 ,
44+ address : {
45+ city : "Madrid" ,
46+ country : "España" ,
47+ } ,
48+ }
49+
50+ console . dir ( users , { depth : 1 , colors : true } )
51+
52+ if ( typeof document !== 'undefined' ) {
53+ console . dirxml ( document . body )
54+ }
55+
56+ /*
57+ * DIFICULTAD EXTRA (opcional):
58+ * Crea un programa ficticio de gestión de tareas que permita añadir, eliminar
59+ * y listar dichas tareas.
60+ * - Añadir: recibe nombre y descripción.
61+ * - Eliminar: por no mbre de la tarea.
62+ * Implementa diferentes mensajes de log que muestren información según la
63+ * tarea ejecutada (a tu elección).
64+ * Utiliza el log para visualizar el tiempo de ejecución de cada tarea.
65+ */
66+
67+ const readline = require ( 'node:readline' )
68+ const { stdin : input , stdout : output } = require ( 'node:process' )
69+
70+ const rl = readline . createInterface ( { input, output } )
71+ let tasks = [ ]
72+
73+ function schedule ( ) {
74+ console . log ( '- Gestor de tareas -' )
75+ console . log ( '1 - Añadir' )
76+ console . log ( '2 - Eliminar' )
77+ console . log ( '3 - Listar' )
78+ console . log ( '4 - Salir' )
79+
80+ rl . question ( 'Ingresa una opción: ' , ( response ) => {
81+ if ( response === '1' ) {
82+ rl . question ( 'Ingrese el nombre de la Tarea: ' , ( taskName ) => {
83+ rl . question ( 'Ingresa la descripción de la tarea: ' , ( taskDescription ) => {
84+ if ( taskName && taskDescription ) {
85+ console . time ( 'Tiempo de ejecución' )
86+ console . log ( `Tarea añadida: ${ taskName } - ${ taskDescription } ` )
87+ tasks . push ( { name : taskName , description : taskDescription } )
88+ console . timeEnd ( 'Tiempo de ejecución' )
89+ } else {
90+ console . log ( 'El nombre y la descripción de la tarea son obligatorios.' )
91+ }
92+ schedule ( )
93+ } )
94+ } )
95+ } else if ( response === '2' ) {
96+ rl . question ( 'Ingresa el nombre de la tarea a eliminar: ' , ( taskName ) => {
97+ console . time ( 'Tiempo de ejecución' )
98+ const originalLength = tasks . length
99+ tasks = tasks . filter ( item => ! item . name . toLowerCase ( ) . includes ( taskName . toLowerCase ( ) ) )
100+ if ( tasks . length < originalLength ) {
101+ console . log ( `Tarea eliminada: ${ taskName } ` )
102+ } else {
103+ console . log ( `No se encontró la tarea: ${ taskName } ` )
104+ }
105+ console . timeEnd ( 'Tiempo de ejecución' )
106+ schedule ( )
107+ } )
108+ } else if ( response === '3' ) {
109+ console . time ( 'Tiempo de ejecución' )
110+ if ( tasks . length > 0 ) {
111+ console . table ( tasks )
112+ } else {
113+ console . log ( 'No hay tareas para mostrar.' )
114+ }
115+ console . timeEnd ( 'Tiempo de ejecución' )
116+ schedule ( )
117+ } else if ( response === '4' ) {
118+ console . log ( 'Saliendo del gestor de tareas...' )
119+ rl . close ( )
120+ } else {
121+ console . log ( 'Opción no válida. Intente de nuevo.' )
122+ schedule ( )
123+ }
124+ } )
125+ }
126+
127+ schedule ( )
0 commit comments