UNPKG

mediateur

Version:

A simple library allowing the implementation of the Mediator design pattern

21 lines (20 loc) 1.04 kB
import { Message } from './message'; import { MessageHandler } from './messageHandler'; import { MessageResult } from './messageResult'; import { AddOptions } from './middlewares'; import { Metadata } from './metadata'; type UseOptions<TMessage extends Message> = AddOptions<TMessage>; declare const mediator: { readonly register: <TKey extends string, TMessage extends Message<TKey>>(messageType: TKey, messageHandler: MessageHandler<TMessage>, metadata?: Metadata) => void; readonly send: <TMessage extends Message>({ type, data, }: TMessage) => Promise<MessageResult<TMessage>>; readonly publish: <TMessage extends Message>({ type, data }: TMessage) => Promise<void>; readonly use: <TMessage extends Message>(options: UseOptions<TMessage>) => void; readonly getMessageTypes: () => string[]; readonly getMetadata: (type: string) => Metadata | undefined; readonly getAllMetadata: () => { type: string; metadata: Metadata; }[]; }; declare const clear: () => void; export { mediator, clear };