9
9
// Frontend uses util.ts
10
10
*/
11
11
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
12
- exports . localToUTC = exports . utcToLocal = exports . utcToISODateTime = exports . isoToUTCDateTime = exports . parseTimeFromTimeObject = exports . parseTimeObject = exports . getMaintenanceRelativeURL = exports . getMonitorRelativeURL = exports . genSecret = exports . getCryptoRandomInt = exports . getRandomInt = exports . getRandomArbitrary = exports . TimeLogger = exports . polyfill = exports . log = exports . debug = exports . ucfirst = exports . sleep = exports . flipStatus = exports . MIN_INTERVAL_SECOND = exports . MAX_INTERVAL_SECOND = exports . SQL_DATETIME_FORMAT_WITHOUT_SECOND = exports . SQL_DATETIME_FORMAT = exports . SQL_DATE_FORMAT = exports . STATUS_PAGE_MAINTENANCE = exports . STATUS_PAGE_PARTIAL_DOWN = exports . STATUS_PAGE_ALL_UP = exports . STATUS_PAGE_ALL_DOWN = exports . MAINTENANCE = exports . PENDING = exports . UP = exports . DOWN = exports . appName = exports . isDev = void 0 ;
12
+ exports . debug = exports . ucfirst = exports . sleep = exports . flipStatus = exports . CONSOLE_STYLE_BgGray = exports . CONSOLE_STYLE_BgWhite = exports . CONSOLE_STYLE_BgCyan = exports . CONSOLE_STYLE_BgMagenta = exports . CONSOLE_STYLE_BgBlue = exports . CONSOLE_STYLE_BgYellow = exports . CONSOLE_STYLE_BgGreen = exports . CONSOLE_STYLE_BgRed = exports . CONSOLE_STYLE_BgBlack = exports . CONSOLE_STYLE_FgPink = exports . CONSOLE_STYLE_FgBrown = exports . CONSOLE_STYLE_FgViolet = exports . CONSOLE_STYLE_FgLightBlue = exports . CONSOLE_STYLE_FgLightGreen = exports . CONSOLE_STYLE_FgOrange = exports . CONSOLE_STYLE_FgGray = exports . CONSOLE_STYLE_FgWhite = exports . CONSOLE_STYLE_FgCyan = exports . CONSOLE_STYLE_FgMagenta = exports . CONSOLE_STYLE_FgBlue = exports . CONSOLE_STYLE_FgYellow = exports . CONSOLE_STYLE_FgGreen = exports . CONSOLE_STYLE_FgRed = exports . CONSOLE_STYLE_FgBlack = exports . CONSOLE_STYLE_Hidden = exports . CONSOLE_STYLE_Reverse = exports . CONSOLE_STYLE_Blink = exports . CONSOLE_STYLE_Underscore = exports . CONSOLE_STYLE_Dim = exports . CONSOLE_STYLE_Bright = exports . CONSOLE_STYLE_Reset = exports . MIN_INTERVAL_SECOND = exports . MAX_INTERVAL_SECOND = exports . SQL_DATETIME_FORMAT_WITHOUT_SECOND = exports . SQL_DATETIME_FORMAT = exports . SQL_DATE_FORMAT = exports . STATUS_PAGE_MAINTENANCE = exports . STATUS_PAGE_PARTIAL_DOWN = exports . STATUS_PAGE_ALL_UP = exports . STATUS_PAGE_ALL_DOWN = exports . MAINTENANCE = exports . PENDING = exports . UP = exports . DOWN = exports . appName = exports . isDev = void 0 ;
13
+ exports . intHash = exports . localToUTC = exports . utcToLocal = exports . utcToISODateTime = exports . isoToUTCDateTime = exports . parseTimeFromTimeObject = exports . parseTimeObject = exports . getMaintenanceRelativeURL = exports . getMonitorRelativeURL = exports . genSecret = exports . getCryptoRandomInt = exports . getRandomInt = exports . getRandomArbitrary = exports . TimeLogger = exports . polyfill = exports . log = void 0 ;
13
14
const dayjs = require ( "dayjs" ) ;
14
15
exports . isDev = process . env . NODE_ENV === "development" ;
15
16
exports . appName = "Uptime Kuma" ;
@@ -26,6 +27,55 @@ exports.SQL_DATETIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
26
27
exports . SQL_DATETIME_FORMAT_WITHOUT_SECOND = "YYYY-MM-DD HH:mm" ;
27
28
exports . MAX_INTERVAL_SECOND = 2073600 ;
28
29
exports . MIN_INTERVAL_SECOND = 20 ;
30
+ exports . CONSOLE_STYLE_Reset = "\x1b[0m" ;
31
+ exports . CONSOLE_STYLE_Bright = "\x1b[1m" ;
32
+ exports . CONSOLE_STYLE_Dim = "\x1b[2m" ;
33
+ exports . CONSOLE_STYLE_Underscore = "\x1b[4m" ;
34
+ exports . CONSOLE_STYLE_Blink = "\x1b[5m" ;
35
+ exports . CONSOLE_STYLE_Reverse = "\x1b[7m" ;
36
+ exports . CONSOLE_STYLE_Hidden = "\x1b[8m" ;
37
+ exports . CONSOLE_STYLE_FgBlack = "\x1b[30m" ;
38
+ exports . CONSOLE_STYLE_FgRed = "\x1b[31m" ;
39
+ exports . CONSOLE_STYLE_FgGreen = "\x1b[32m" ;
40
+ exports . CONSOLE_STYLE_FgYellow = "\x1b[33m" ;
41
+ exports . CONSOLE_STYLE_FgBlue = "\x1b[34m" ;
42
+ exports . CONSOLE_STYLE_FgMagenta = "\x1b[35m" ;
43
+ exports . CONSOLE_STYLE_FgCyan = "\x1b[36m" ;
44
+ exports . CONSOLE_STYLE_FgWhite = "\x1b[37m" ;
45
+ exports . CONSOLE_STYLE_FgGray = "\x1b[90m" ;
46
+ exports . CONSOLE_STYLE_FgOrange = "\x1b[38;5;208m" ;
47
+ exports . CONSOLE_STYLE_FgLightGreen = "\x1b[38;5;119m" ;
48
+ exports . CONSOLE_STYLE_FgLightBlue = "\x1b[38;5;117m" ;
49
+ exports . CONSOLE_STYLE_FgViolet = "\x1b[38;5;141m" ;
50
+ exports . CONSOLE_STYLE_FgBrown = "\x1b[38;5;130m" ;
51
+ exports . CONSOLE_STYLE_FgPink = "\x1b[38;5;219m" ;
52
+ exports . CONSOLE_STYLE_BgBlack = "\x1b[40m" ;
53
+ exports . CONSOLE_STYLE_BgRed = "\x1b[41m" ;
54
+ exports . CONSOLE_STYLE_BgGreen = "\x1b[42m" ;
55
+ exports . CONSOLE_STYLE_BgYellow = "\x1b[43m" ;
56
+ exports . CONSOLE_STYLE_BgBlue = "\x1b[44m" ;
57
+ exports . CONSOLE_STYLE_BgMagenta = "\x1b[45m" ;
58
+ exports . CONSOLE_STYLE_BgCyan = "\x1b[46m" ;
59
+ exports . CONSOLE_STYLE_BgWhite = "\x1b[47m" ;
60
+ exports . CONSOLE_STYLE_BgGray = "\x1b[100m" ;
61
+ const consoleModuleColors = [
62
+ exports . CONSOLE_STYLE_FgCyan ,
63
+ exports . CONSOLE_STYLE_FgGreen ,
64
+ exports . CONSOLE_STYLE_FgLightGreen ,
65
+ exports . CONSOLE_STYLE_FgBlue ,
66
+ exports . CONSOLE_STYLE_FgLightBlue ,
67
+ exports . CONSOLE_STYLE_FgMagenta ,
68
+ exports . CONSOLE_STYLE_FgOrange ,
69
+ exports . CONSOLE_STYLE_FgViolet ,
70
+ exports . CONSOLE_STYLE_FgBrown ,
71
+ exports . CONSOLE_STYLE_FgPink ,
72
+ ] ;
73
+ const consoleLevelColors = {
74
+ "INFO" : exports . CONSOLE_STYLE_FgCyan ,
75
+ "WARN" : exports . CONSOLE_STYLE_FgYellow ,
76
+ "ERROR" : exports . CONSOLE_STYLE_FgRed ,
77
+ "DEBUG" : exports . CONSOLE_STYLE_FgGray ,
78
+ } ;
29
79
function flipStatus ( s ) {
30
80
if ( s === exports . UP ) {
31
81
return exports . DOWN ;
@@ -85,23 +135,30 @@ class Logger {
85
135
else {
86
136
now = dayjs ( ) . format ( ) ;
87
137
}
88
- const formattedMessage = ( typeof msg === "string" ) ? `${ now } [${ module } ] ${ level } : ${ msg } ` : msg ;
138
+ const levelColor = consoleLevelColors [ level ] ;
139
+ const moduleColor = consoleModuleColors [ intHash ( module , consoleModuleColors . length ) ] ;
140
+ let timePart = exports . CONSOLE_STYLE_FgCyan + now + exports . CONSOLE_STYLE_Reset ;
141
+ let modulePart = "[" + moduleColor + module + exports . CONSOLE_STYLE_Reset + "]" ;
142
+ let levelPart = levelColor + `${ level } :` + exports . CONSOLE_STYLE_Reset ;
89
143
if ( level === "INFO" ) {
90
- console . info ( formattedMessage ) ;
144
+ console . info ( timePart , modulePart , levelPart , msg ) ;
91
145
}
92
146
else if ( level === "WARN" ) {
93
- console . warn ( formattedMessage ) ;
147
+ console . warn ( timePart , modulePart , levelPart , msg ) ;
94
148
}
95
149
else if ( level === "ERROR" ) {
96
- console . error ( formattedMessage ) ;
150
+ let msgPart = exports . CONSOLE_STYLE_FgRed + msg + exports . CONSOLE_STYLE_Reset ;
151
+ console . error ( timePart , modulePart , levelPart , msgPart ) ;
97
152
}
98
153
else if ( level === "DEBUG" ) {
99
154
if ( exports . isDev ) {
100
- console . log ( formattedMessage ) ;
155
+ timePart = exports . CONSOLE_STYLE_FgGray + now + exports . CONSOLE_STYLE_Reset ;
156
+ let msgPart = exports . CONSOLE_STYLE_FgGray + msg + exports . CONSOLE_STYLE_Reset ;
157
+ console . debug ( timePart , modulePart , levelPart , msgPart ) ;
101
158
}
102
159
}
103
160
else {
104
- console . log ( formattedMessage ) ;
161
+ console . log ( timePart , modulePart , msg ) ;
105
162
}
106
163
}
107
164
info ( module , msg ) {
@@ -269,3 +326,11 @@ function localToUTC(input, format = exports.SQL_DATETIME_FORMAT) {
269
326
return dayjs ( input ) . utc ( ) . format ( format ) ;
270
327
}
271
328
exports . localToUTC = localToUTC ;
329
+ function intHash ( str , length = 10 ) {
330
+ let hash = 0 ;
331
+ for ( let i = 0 ; i < str . length ; i ++ ) {
332
+ hash += str . charCodeAt ( i ) ;
333
+ }
334
+ return ( hash % length + length ) % length ;
335
+ }
336
+ exports . intHash = intHash ;
0 commit comments