signal-desktop/ts/sql/sqlLogger.ts

51 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-05-22 21:09:54 -04:00
// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
2025-06-16 09:47:18 -07:00
import { parentPort } from 'node:worker_threads';
import { format } from 'node:util';
2025-05-22 21:09:54 -04:00
import type { LoggerType } from '../types/Logging';
import type { WrappedWorkerLogEntry, WrappedWorkerResponse } from './main';
import { consoleLogger } from '../util/consoleLogger';
import { strictAssert } from '../util/assert';
const log = (
level: WrappedWorkerLogEntry['level'],
args: Array<unknown>
): void => {
if (parentPort) {
const wrappedResponse: WrappedWorkerResponse = {
type: 'log',
level,
args,
};
parentPort.postMessage(wrappedResponse);
} else {
strictAssert(process.env.NODE_ENV === 'test', 'must be test environment');
2025-06-16 09:47:18 -07:00
consoleLogger[level](format(...args));
2025-05-22 21:09:54 -04:00
}
};
export const sqlLogger: LoggerType = {
fatal(...args: Array<unknown>) {
log('fatal', args);
},
error(...args: Array<unknown>) {
log('error', args);
},
warn(...args: Array<unknown>) {
log('warn', args);
},
info(...args: Array<unknown>) {
log('info', args);
},
debug(...args: Array<unknown>) {
log('debug', args);
},
trace(...args: Array<unknown>) {
log('trace', args);
},
2025-06-16 09:47:18 -07:00
child() {
return sqlLogger;
},
2025-05-22 21:09:54 -04:00
};