Use logger interface in main sql worker
This commit is contained in:
parent
04aad09590
commit
87b56fcfd0
5 changed files with 230 additions and 119 deletions
|
@ -3,7 +3,12 @@
|
|||
|
||||
import { parentPort } from 'worker_threads';
|
||||
|
||||
import { WrappedWorkerRequest, WrappedWorkerResponse } from './main';
|
||||
import type { LoggerType } from '../types/Logging';
|
||||
import type {
|
||||
WrappedWorkerRequest,
|
||||
WrappedWorkerResponse,
|
||||
WrappedWorkerLogEntry,
|
||||
} from './main';
|
||||
import db from './Server';
|
||||
|
||||
if (!parentPort) {
|
||||
|
@ -15,6 +20,7 @@ const port = parentPort;
|
|||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
function respond(seq: number, error: Error | undefined, response?: any) {
|
||||
const wrappedResponse: WrappedWorkerResponse = {
|
||||
type: 'response',
|
||||
seq,
|
||||
error: error ? error.stack : undefined,
|
||||
response,
|
||||
|
@ -22,10 +28,46 @@ function respond(seq: number, error: Error | undefined, response?: any) {
|
|||
port.postMessage(wrappedResponse);
|
||||
}
|
||||
|
||||
const log = (
|
||||
level: WrappedWorkerLogEntry['level'],
|
||||
args: Array<unknown>
|
||||
): void => {
|
||||
const wrappedResponse: WrappedWorkerResponse = {
|
||||
type: 'log',
|
||||
level,
|
||||
args,
|
||||
};
|
||||
port.postMessage(wrappedResponse);
|
||||
};
|
||||
|
||||
const logger: 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);
|
||||
},
|
||||
};
|
||||
|
||||
port.on('message', async ({ seq, request }: WrappedWorkerRequest) => {
|
||||
try {
|
||||
if (request.type === 'init') {
|
||||
await db.initialize(request.options);
|
||||
await db.initialize({
|
||||
...request.options,
|
||||
logger,
|
||||
});
|
||||
|
||||
respond(seq, undefined, undefined);
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue