@@ -11,7 +11,7 @@ export type LogColors = keyof typeof colors
1111export interface LogEntry {
1212 timestamp : Date
1313 level : LogLevel
14- message : string
14+ message : any
1515}
1616
1717export class Logger {
@@ -60,7 +60,7 @@ export class Logger {
6060 * @example
6161 * logger.debug('no duplicates found, creating a document...')
6262 */
63- public debug ( message : string , ...positionals : Array < unknown > ) : void {
63+ public debug ( message : any , ...positionals : Array < unknown > ) : void {
6464 this . logEntry ( {
6565 level : 'debug' ,
6666 message : colors . gray ( message ) ,
@@ -77,7 +77,7 @@ export class Logger {
7777 * @example
7878 * logger.info('start parsing...')
7979 */
80- public info ( message : string , ...positionals : Array < unknown > ) {
80+ public info ( message : any , ...positionals : Array < unknown > ) {
8181 this . logEntry ( {
8282 level : 'info' ,
8383 message,
@@ -90,7 +90,7 @@ export class Logger {
9090
9191 const performance = new PerformanceEntry ( )
9292
93- return ( message : string , ...positionals : Array < unknown > ) => {
93+ return ( message : any , ...positionals : Array < unknown > ) => {
9494 performance . measure ( )
9595
9696 this . logEntry ( {
@@ -110,7 +110,7 @@ export class Logger {
110110 * @example
111111 * logger.success('successfully created document')
112112 */
113- public success ( message : string , ...positionals : Array < unknown > ) : void {
113+ public success ( message : any , ...positionals : Array < unknown > ) : void {
114114 this . logEntry ( {
115115 level : 'info' ,
116116 message,
@@ -128,7 +128,7 @@ export class Logger {
128128 * @example
129129 * logger.warning('found legacy document format')
130130 */
131- public warning ( message : string , ...positionals : Array < unknown > ) : void {
131+ public warning ( message : any , ...positionals : Array < unknown > ) : void {
132132 this . logEntry ( {
133133 level : 'warning' ,
134134 message,
@@ -146,7 +146,7 @@ export class Logger {
146146 * @example
147147 * logger.error('something went wrong')
148148 */
149- public error ( message : string , ...positionals : Array < unknown > ) : void {
149+ public error ( message : any , ...positionals : Array < unknown > ) : void {
150150 this . logEntry ( {
151151 level : 'error' ,
152152 message,
@@ -172,7 +172,7 @@ export class Logger {
172172 callback ( )
173173 }
174174
175- private createEntry ( level : LogLevel , message : string ) : LogEntry {
175+ private createEntry ( level : LogLevel , message : unknown ) : LogEntry {
176176 return {
177177 timestamp : new Date ( ) ,
178178 level,
@@ -182,7 +182,7 @@ export class Logger {
182182
183183 private logEntry ( args : {
184184 level : LogLevel
185- message : string
185+ message : unknown
186186 positionals ?: Array < unknown >
187187 prefix ?: string
188188 colors ?: {
@@ -211,9 +211,9 @@ export class Logger {
211211 write (
212212 [ colorize . timestamp ( this . formatTimestamp ( entry . timestamp ) ) ]
213213 . concat ( prefix != null ? colorize . prefix ( prefix ) : [ ] )
214- . concat ( message )
214+ . concat ( serializeInput ( message ) )
215215 . join ( ' ' ) ,
216- ...positionals
216+ ...positionals . map ( serializeInput )
217217 )
218218 }
219219
@@ -304,3 +304,23 @@ function isDefinedAndNotEquals(
304304) : boolean {
305305 return value !== undefined && value !== expected
306306}
307+
308+ function serializeInput ( message : any ) : string {
309+ if ( typeof message === 'undefined' ) {
310+ return 'undefined'
311+ }
312+
313+ if ( message === null ) {
314+ return 'null'
315+ }
316+
317+ if ( typeof message === 'string' ) {
318+ return message
319+ }
320+
321+ if ( typeof message === 'object' ) {
322+ return JSON . stringify ( message )
323+ }
324+
325+ return message . toString ( )
326+ }
0 commit comments