@@ -9,9 +9,9 @@ function bigintReplacer(key: string, value: unknown) {
9
9
}
10
10
11
11
// TODO: Deduplicate this and sprintf implementation
12
- function tryStringify ( o : unknown ) {
12
+ function tryStringify ( value : unknown ) {
13
13
try {
14
- return JSON . stringify ( o , bigintReplacer ) ;
14
+ return JSON . stringify ( value , bigintReplacer ) ;
15
15
} catch {
16
16
return "[Circular]" ;
17
17
}
@@ -34,37 +34,45 @@ export interface LoggerOptions {
34
34
35
35
const PREFIX = "✦Aj" ;
36
36
37
- function getMessage ( obj : unknown , msg : unknown , args : unknown [ ] ) {
38
- // The first argument was the message so juggle the args
39
- if ( typeof obj === "string" ) {
40
- args = [ msg , ...args ] ;
41
- msg = obj ;
37
+ function getMessage (
38
+ mergingObject : unknown ,
39
+ message : unknown ,
40
+ interpolationValues : unknown [ ] ,
41
+ ) {
42
+ // The first argument was the message so juggle the arguments
43
+ if ( typeof mergingObject === "string" ) {
44
+ interpolationValues = [ message , ...interpolationValues ] ;
45
+ message = mergingObject ;
42
46
}
43
47
44
- // Prefer a string message over `obj .msg`, as per Pino:
48
+ // Prefer a string message over `mergingObject .msg`, as per Pino:
45
49
// https://github.com/pinojs/pino/blob/8db130eba0439e61c802448d31eb1998cebfbc98/docs/api.md#message-string
46
- if ( typeof msg === "string" ) {
47
- return format ( msg , ...args ) ;
50
+ if ( typeof message === "string" ) {
51
+ return format ( message , ...interpolationValues ) ;
48
52
}
49
53
50
54
if (
51
- typeof obj === "object" &&
52
- obj !== null &&
53
- "msg" in obj &&
54
- typeof obj . msg === "string"
55
+ typeof mergingObject === "object" &&
56
+ mergingObject !== null &&
57
+ "msg" in mergingObject &&
58
+ typeof mergingObject . msg === "string"
55
59
) {
56
- return format ( obj . msg , [ msg , ...args ] ) ;
60
+ return format ( mergingObject . msg , [ message , ...interpolationValues ] ) ;
57
61
}
58
62
}
59
63
60
- function getOutput ( obj : unknown , msg : unknown , args : unknown [ ] ) {
61
- let output = getMessage ( obj , msg , args ) ;
64
+ function getOutput (
65
+ mergingObject : unknown ,
66
+ message : unknown ,
67
+ interpolationValues : unknown [ ] ,
68
+ ) {
69
+ let output = getMessage ( mergingObject , message , interpolationValues ) ;
62
70
if ( typeof output !== "string" ) {
63
71
return ;
64
72
}
65
73
66
- if ( typeof obj === "object" && obj !== null ) {
67
- for ( const [ key , value ] of Object . entries ( obj ) ) {
74
+ if ( typeof mergingObject === "object" && mergingObject !== null ) {
75
+ for ( const [ key , value ] of Object . entries ( mergingObject ) ) {
68
76
output += `\n ${ key } : ${ tryStringify ( value ) } ` ;
69
77
}
70
78
}
@@ -81,17 +89,17 @@ export class Logger {
81
89
/**
82
90
* Configuration.
83
91
*
84
- * @param opts
92
+ * @param options
85
93
* Configuration.
86
94
* @returns
87
95
* Logger.
88
96
*/
89
- constructor ( opts : LoggerOptions ) {
90
- if ( typeof opts . level !== "string" ) {
97
+ constructor ( options : LoggerOptions ) {
98
+ if ( typeof options . level !== "string" ) {
91
99
throw new Error ( `Invalid log level` ) ;
92
100
}
93
101
94
- switch ( opts . level ) {
102
+ switch ( options . level ) {
95
103
case "debug" :
96
104
this . #logLevel = 0 ;
97
105
break ;
@@ -105,38 +113,46 @@ export class Logger {
105
113
this . #logLevel = 3 ;
106
114
break ;
107
115
default : {
108
- throw new Error ( `Unknown log level: ${ opts . level } ` ) ;
116
+ throw new Error ( `Unknown log level: ${ options . level } ` ) ;
109
117
}
110
118
}
111
119
}
112
120
113
121
/**
114
122
* Debug.
115
123
*
116
- * @param msg
124
+ * @param message
117
125
* Template.
118
- * @param args
126
+ * @param interpolationValues
119
127
* Parameters to interpolate.
120
128
* @returns
121
129
* Nothing.
122
130
*/
123
- debug ( msg : string , ...args : unknown [ ] ) : void ;
131
+ debug ( message : string , ...interpolationValues : unknown [ ] ) : void ;
124
132
/**
125
133
* Debug.
126
134
*
127
- * @param obj
135
+ * @param mergingObject
128
136
* Merging object copied into the JSON log line.
129
- * @param msg
137
+ * @param message
130
138
* Template.
131
- * @param args
139
+ * @param interpolationValues
132
140
* Parameters to interpolate.
133
141
* @returns
134
142
* Nothing.
135
143
*/
136
- debug ( obj : Record < string , unknown > , msg ?: string , ...args : unknown [ ] ) : void ;
137
- debug ( obj : unknown , msg ?: unknown , ...args : unknown [ ] ) : void {
144
+ debug (
145
+ mergingObject : Record < string , unknown > ,
146
+ message ?: string ,
147
+ ...interpolationValues : unknown [ ]
148
+ ) : void ;
149
+ debug (
150
+ mergingObject : unknown ,
151
+ message ?: unknown ,
152
+ ...interpolationValues : unknown [ ]
153
+ ) : void {
138
154
if ( this . #logLevel <= 0 ) {
139
- const output = getOutput ( obj , msg , args ) ;
155
+ const output = getOutput ( mergingObject , message , interpolationValues ) ;
140
156
if ( typeof output !== "undefined" ) {
141
157
console . debug ( `${ PREFIX } DEBUG ${ output } ` ) ;
142
158
}
@@ -146,30 +162,38 @@ export class Logger {
146
162
/**
147
163
* Info.
148
164
*
149
- * @param msg
165
+ * @param message
150
166
* Template.
151
- * @param args
167
+ * @param interpolationValues
152
168
* Parameters to interpolate.
153
169
* @returns
154
170
* Nothing.
155
171
*/
156
- info ( msg : string , ...args : unknown [ ] ) : void ;
172
+ info ( message : string , ...interpolationValues : unknown [ ] ) : void ;
157
173
/**
158
174
* Info.
159
175
*
160
- * @param obj
176
+ * @param mergingObject
161
177
* Merging object copied into the JSON log line.
162
- * @param msg
178
+ * @param message
163
179
* Template.
164
- * @param args
180
+ * @param interpolationValues
165
181
* Parameters to interpolate.
166
182
* @returns
167
183
* Nothing.
168
184
*/
169
- info ( obj : Record < string , unknown > , msg ?: string , ...args : unknown [ ] ) : void ;
170
- info ( obj : unknown , msg ?: unknown , ...args : unknown [ ] ) : void {
185
+ info (
186
+ mergingObject : Record < string , unknown > ,
187
+ message ?: string ,
188
+ ...interpolationValues : unknown [ ]
189
+ ) : void ;
190
+ info (
191
+ mergingObject : unknown ,
192
+ message ?: unknown ,
193
+ ...interpolationValues : unknown [ ]
194
+ ) : void {
171
195
if ( this . #logLevel <= 1 ) {
172
- const output = getOutput ( obj , msg , args ) ;
196
+ const output = getOutput ( mergingObject , message , interpolationValues ) ;
173
197
if ( typeof output !== "undefined" ) {
174
198
console . info ( `${ PREFIX } INFO ${ output } ` ) ;
175
199
}
@@ -179,30 +203,38 @@ export class Logger {
179
203
/**
180
204
* Warn.
181
205
*
182
- * @param msg
206
+ * @param message
183
207
* Template.
184
- * @param args
208
+ * @param interpolationValues
185
209
* Parameters to interpolate.
186
210
* @returns
187
211
* Nothing.
188
212
*/
189
- warn ( msg : string , ...args : unknown [ ] ) : void ;
213
+ warn ( message : string , ...interpolationValues : unknown [ ] ) : void ;
190
214
/**
191
215
* Warn.
192
216
*
193
- * @param obj
217
+ * @param mergingObject
194
218
* Merging object copied into the JSON log line.
195
- * @param msg
219
+ * @param message
196
220
* Template.
197
- * @param args
221
+ * @param interpolationValues
198
222
* Parameters to interpolate.
199
223
* @returns
200
224
* Nothing.
201
225
*/
202
- warn ( obj : Record < string , unknown > , msg ?: string , ...args : unknown [ ] ) : void ;
203
- warn ( obj : unknown , msg ?: unknown , ...args : unknown [ ] ) : void {
226
+ warn (
227
+ mergingObject : Record < string , unknown > ,
228
+ message ?: string ,
229
+ ...interpolationValues : unknown [ ]
230
+ ) : void ;
231
+ warn (
232
+ mergingObject : unknown ,
233
+ message ?: unknown ,
234
+ ...interpolationValues : unknown [ ]
235
+ ) : void {
204
236
if ( this . #logLevel <= 2 ) {
205
- const output = getOutput ( obj , msg , args ) ;
237
+ const output = getOutput ( mergingObject , message , interpolationValues ) ;
206
238
if ( typeof output !== "undefined" ) {
207
239
console . warn ( `${ PREFIX } WARN ${ output } ` ) ;
208
240
}
@@ -212,30 +244,38 @@ export class Logger {
212
244
/**
213
245
* Error.
214
246
*
215
- * @param msg
247
+ * @param message
216
248
* Template.
217
- * @param args
249
+ * @param interpolationValues
218
250
* Parameters to interpolate.
219
251
* @returns
220
252
* Nothing.
221
253
*/
222
- error ( msg : string , ...args : unknown [ ] ) : void ;
254
+ error ( message : string , ...interpolationValues : unknown [ ] ) : void ;
223
255
/**
224
256
* Error.
225
257
*
226
- * @param obj
258
+ * @param mergingObject
227
259
* Merging object copied into the JSON log line.
228
- * @param msg
260
+ * @param message
229
261
* Template.
230
- * @param args
262
+ * @param interpolationValues
231
263
* Parameters to interpolate.
232
264
* @returns
233
265
* Nothing.
234
266
*/
235
- error ( obj : Record < string , unknown > , msg ?: string , ...args : unknown [ ] ) : void ;
236
- error ( obj : unknown , msg ?: unknown , ...args : unknown [ ] ) : void {
267
+ error (
268
+ mergingObject : Record < string , unknown > ,
269
+ message ?: string ,
270
+ ...interpolationValues : unknown [ ]
271
+ ) : void ;
272
+ error (
273
+ mergingObject : unknown ,
274
+ message ?: unknown ,
275
+ ...interpolationValues : unknown [ ]
276
+ ) : void {
237
277
if ( this . #logLevel <= 3 ) {
238
- const output = getOutput ( obj , msg , args ) ;
278
+ const output = getOutput ( mergingObject , message , interpolationValues ) ;
239
279
if ( typeof output !== "undefined" ) {
240
280
console . error ( `${ PREFIX } ERROR ${ output } ` ) ;
241
281
}
0 commit comments