@minimaltech/node-infra
Version:
Minimal Technology NodeJS Infrastructure - Loopback 4 Framework
63 lines (62 loc) • 2.47 kB
TypeScript
import { BaseHelper } from '../../base/base.helper';
import { ValueOrPromise } from '../../common/types';
import { MessagePort, Transferable } from 'node:worker_threads';
import { IWorkerBus, IWorkerMessageBusHandler } from './types';
export declare abstract class AbstractWorkerMessageBusHandlerHelper<IConsumePayload> extends BaseHelper implements IWorkerMessageBusHandler<IConsumePayload> {
onMessage: (opts: {
message: IConsumePayload;
}) => ValueOrPromise<void>;
onClose: () => ValueOrPromise<void>;
onError: (opts: {
error: Error;
}) => ValueOrPromise<void>;
onExit: (opts: {
exitCode: number | string;
}) => ValueOrPromise<void>;
}
export declare class BaseWorkerMessageBusHandlerHelper<IConsumePayload> extends AbstractWorkerMessageBusHandlerHelper<IConsumePayload> {
constructor(opts: {
scope: string;
onMessage: (opts: {
message: IConsumePayload;
}) => ValueOrPromise<void>;
onClose?: () => ValueOrPromise<void>;
onError?: (opts: {
error: Error;
}) => ValueOrPromise<void>;
onExit?: (opts: {
exitCode: number | string;
}) => ValueOrPromise<void>;
});
}
export declare abstract class AbstractWorkerBusHelper<IConsumePayload, IPublishPayload> extends BaseHelper implements IWorkerBus<IConsumePayload, IPublishPayload> {
port: MessagePort;
handler: IWorkerMessageBusHandler<IConsumePayload>;
abstract onBeforePostMessage?(opts: {
message: IPublishPayload;
}): ValueOrPromise<void>;
abstract onAfterPostMessage?(opts: {
message: IPublishPayload;
}): ValueOrPromise<void>;
abstract postMessage(opts: {
message: IPublishPayload;
transferList: readonly Transferable[] | undefined;
}): ValueOrPromise<void>;
}
export declare class BaseWorkerBusHelper<IConsumePayload, IPublishPayload> extends AbstractWorkerBusHelper<IConsumePayload, IPublishPayload> {
constructor(opts: {
scope: string;
port: MessagePort;
busHandler: IWorkerMessageBusHandler<IConsumePayload>;
});
onBeforePostMessage?(opts: {
message: IPublishPayload;
}): ValueOrPromise<void>;
onAfterPostMessage?(opts: {
message: IPublishPayload;
}): ValueOrPromise<void>;
postMessage(opts: {
message: IPublishPayload;
transferList: readonly Transferable[] | undefined;
}): ValueOrPromise<void>;
}