@rewaa/event-broker
Version:
A broker for all the events that Rewaa will ever produce or consume
28 lines (27 loc) • 1.73 kB
TypeScript
import { Message } from "@aws-sdk/client-sqs";
import { ConsumeOptions, EmitBatchPayload, EmitPayload, EventListener, IBatchEmitOptions, IBatchMessage, IEmitOptions, IEmitter, IEmitterOptions, IFailedConsumerMessages, IFailedEmitBatchMessage, IMessage, ProcessMessageOptions, Queue, Topic } from "../types";
export declare class Emitter implements IEmitter {
private localEmitter;
private emitter;
private options;
private logger;
constructor(options: IEmitterOptions);
bootstrap(topics?: Topic[]): Promise<void>;
emit(eventName: string, options?: IEmitOptions, payload?: any): Promise<void>;
emitBatch(eventName: string, messages: IBatchMessage[], options?: IBatchEmitOptions): Promise<IFailedEmitBatchMessage[]>;
emitLocal(eventName: string, ...args: any[]): boolean;
on(eventName: string, listener: EventListener<any>, options?: ConsumeOptions): void;
removeListener(eventName: string, listener: EventListener<any>): void;
removeAllListener(): void;
processMessage(message: Message, options?: ProcessMessageOptions): Promise<void>;
processMessages(messages: Message[], options?: ProcessMessageOptions): Promise<IFailedConsumerMessages>;
startConsumers(): Promise<void>;
getTopicReference(topic: Topic): string;
getInternalTopicName(topic: Topic): string;
getQueues(): Queue[];
getQueueReference(topic: Topic): string;
getInternalQueueName(topic: Topic): string;
getEmitPayload(eventName: string, options?: IEmitOptions, ...args: any[]): EmitPayload;
getBatchEmitPayload(eventName: string, messages: IBatchMessage[], options?: IBatchEmitOptions): EmitBatchPayload;
parseDataFromMessage<T>(receivedMessage: Message): IMessage<T>;
}