1+ const niveles = {
2+ DEBUG : 'DEBUG' ,
3+ INFO : 'INFO' ,
4+ WARNING : 'WARNING' ,
5+ ERROR : 'ERROR'
6+ } ;
7+
8+ function log ( nivel , mensaje ) {
9+ const fecha = new Date ( ) . toISOString ( )
10+ const formato = `${ fecha } - ${ nivel } - ${ mensaje } `
11+
12+ switch ( nivel ) {
13+ case niveles . DEBUG :
14+ console . debug ( formato )
15+ break
16+ case niveles . INFO :
17+ console . info ( formato )
18+ break
19+ case niveles . WARNING :
20+ console . warn ( formato )
21+ break
22+ case niveles . ERROR :
23+ console . error ( formato )
24+ break
25+ default :
26+ console . log ( formato )
27+ }
28+ }
29+
30+ log ( niveles . DEBUG , "Esto es un mensaje de DEBUG" )
31+ log ( niveles . INFO , "Esto es un mensaje de INFO" )
32+ log ( niveles . WARNING , "Esto es un mensaje de WARNING" )
33+ log ( niveles . ERROR , "Esto es un mensaje de ERROR" )
34+
35+ // ---------------------------------------- DIFICULTAD EXTRA ----------------------------------------
36+ class TaskManager {
37+ constructor ( ) {
38+ this . tasks = { }
39+ }
40+
41+ addTask ( nameTask , description ) {
42+ const startTime = performance . now ( )
43+ if ( Object . hasOwn ( this . tasks , nameTask ) ) console . warn ( 'Ya existe una tarea con ese nombre' )
44+ else {
45+ Object . assign ( this . tasks , { [ nameTask ] : description } )
46+ console . info ( 'La tarea se ha agregado correctamente' )
47+ }
48+ console . debug ( `tenes ${ Object . keys ( this . tasks ) . length } tarea/s pendiente/s` )
49+ const endTime = performance . now ( )
50+ console . log ( `Tiempo de ejecución: ${ ( endTime - startTime ) . toFixed ( 2 ) } s` )
51+ }
52+
53+ deleteTask ( nameTask ) {
54+ const startTime = performance . now ( )
55+ if ( Object . hasOwn ( this . tasks , nameTask ) ) {
56+ delete this . tasks [ nameTask ]
57+ console . info ( 'La tarea se ha borrado correctamente' )
58+ }
59+ else console . error ( 'La tarea que desea eliminar no existe' )
60+ const endTime = performance . now ( )
61+ console . log ( `Tiempo de ejecución: ${ ( endTime - startTime ) . toFixed ( 2 ) } s` )
62+ }
63+
64+ viewTaks ( ) {
65+ const startTime = performance . now ( )
66+ console . info ( this . tasks )
67+ const endTime = performance . now ( )
68+ console . log ( `Tiempo de ejecución: ${ ( endTime - startTime ) . toFixed ( 2 ) } s` )
69+ }
70+ }
71+
72+ const taskManager = new TaskManager
73+ taskManager . addTask ( 'javascript' , 'terminar el ejercicio 25 de javascript' )
74+ taskManager . addTask ( 'papel' , 'comprar todo el papel higienico por si se viene el apocalipsis' )
75+ taskManager . viewTaks ( )
76+ taskManager . deleteTask ( 'noExisto' )
77+ taskManager . deleteTask ( 'papel' )
78+ taskManager . viewTaks ( )
0 commit comments