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