@samitouri / QOSami-HFS / commits / dc8ffc5e

fix: console.table layout was ruined by the timestamp

Massimo Melina committed Apr 21, 2026 at 10:23 UTC dc8ffc5e17ff952474d4aa34d4cb2d0b9f388043
1 file changed +15 -2
src/consoleLog.ts
+15 -2
@@ -4,9 +4,10 @@ import { createWriteStream } from 'fs'
4 import { argv } from './argv'
5
6 export const consoleLog: Array<{ ts: Date, k: string, msg: string }> = []
7 +const originalConsoleLog = console.log
8 const f = argv.consoleFile ? createWriteStream(argv.consoleFile, { flags: 'a', encoding: 'utf8' }) : null
8 -for (const k of ['log','warn','error','debug']) {
9 - const original = console[k as 'log']
9 +for (const k of ['log','warn','error','debug'] as const) {
10 + const original = console[k]
11 console[k as 'log'] = (...args: any[]) => {
12 const ts = new Date()
13 if (k === 'debug')
@@ -24,6 +25,18 @@ for (const k of ['log','warn','error','debug']) {
25 }
26 return original(formatTime(ts), ...args) // bundled nodejs doesn't have locales (and apparently uses en-US)
27 }
28 + Object.assign(console[k], { original })
29 +}
30 +
31 +const over = console.log
32 +for (const k of ['table'] as const) {
33 + const original = console[k]
34 + console[k] = (...args: any[]) => {
35 + console.log = originalConsoleLog
36 + // @ts-ignore
37 + try { return original(...args) }
38 + finally { console.log = over }
39 + }
40 }
41
42 function safeJoin(a: unknown[]): string {