UNPKG

@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
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>; }