@message-in-the-middle/core
Version:
Framework-agnostic middleware pattern for message queue processing. Core package with all middlewares.
28 lines (27 loc) • 1.15 kB
TypeScript
import { InboundMiddleware, MessageContext } from './types';
export type MessageHandlerFn<T = any> = (context: MessageContext<T>) => Promise<void> | void;
export interface MessageDispatcherOptions {
identifierField?: string;
defaultHandler?: MessageHandlerFn<any>;
throwOnUnhandled?: boolean;
}
export declare class MessageDispatcher<T = any> {
private handlers;
private identifierField;
private defaultHandler?;
private throwOnUnhandled;
constructor(options?: MessageDispatcherOptions);
register(identifier: string, handler: MessageHandlerFn<T>): this;
registerMany(handlers: Record<string, MessageHandlerFn<T>>): this;
dispatch(context: MessageContext<T>): Promise<void>;
has(identifier: string): boolean;
unregister(identifier: string): boolean;
getRegisteredIdentifiers(): string[];
clear(): void;
getIdentifierField(): string;
}
export declare class DispatcherMiddleware<T = any> implements InboundMiddleware<T> {
private readonly dispatcher;
constructor(dispatcher: MessageDispatcher<T>);
process(context: MessageContext<T>, next: () => Promise<void>): Promise<void>;
}