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 {