UNPKG

@rewaa/event-broker

Version:

A broker for all the events that Rewaa will ever produce or consume

82 lines (81 loc) 3.43 kB
import { IEmitterOptions, IEmitter, Queue, Topic, IEmitOptions, EventListener, ConsumeOptions, ProcessMessageOptions, IBatchMessage, IBatchEmitOptions, IFailedEmitBatchMessage, IFailedConsumerMessages, Logger, IMessage, EmitPayload, EmitBatchPayload } from "../types"; import { Message } from "@aws-sdk/client-sqs"; export declare class SqnsEmitter implements IEmitter { private readonly logger; private snsProducer; private sqsProducer; private lambdaClient; private dynamoClient; private localEmitter; private options; private topicListeners; private topics; private queues; private consumersStarted; private outbox?; constructor(logger: Logger, options: IEmitterOptions); private getUniqueKeyForTopicListener; private getTopicListeners; private addTopicListener; bootstrap(topics?: Topic[]): Promise<void>; private tagQueues; private createEventSourceMappings; private addDefaultTopics; private configureOutbox; private createTopic; private createTopics; private createQueue; private createQueues; private getTopicArn; private getQueueArn; private getQueueUrl; private subscribeToTopics; private getQueueName; private getTopicName; private logFailedEvent; private emitToTopic; private emitToQueue; getEmitPayload(eventName: string, options?: IEmitOptions, payload?: any): EmitPayload; emit(eventName: string, options?: IEmitOptions, payload?: any): Promise<void>; private internalEmit; private emitBatchToTopic; private emitBatchToQueue; getBatchEmitPayload(eventName: string, messages: IBatchMessage[], options?: IBatchEmitOptions): EmitBatchPayload; private getBatchMessagesForQueue; private getBatchMessagesForTopic; emitBatch(eventName: string, messages: IBatchMessage[], options?: IBatchEmitOptions): Promise<IFailedEmitBatchMessage[]>; startConsumers(): Promise<void>; private addConsumerWorkerToQueue; private startConsumer; private handleMessageReceipt; removeListener(eventName: string, listener: EventListener<any>, consumeOptions?: ConsumeOptions): void; removeAllListener(): void; private getTopicFromEventNameAndConsumeOptions; on(eventName: string, listener: EventListener<any>, options?: ConsumeOptions): void; private getSeparateConsumer; private isConsumerFifo; private onMessageReceived; private getDeduplicationKey; private isMessageAlreadyProcessed; private handleOutboxEvent; parseDataFromMessage<T>(receivedMessage: Message): IMessage<T>; private mapMessageAttributesFromSNS; private deleteMessages; private processFifoQueueMessages; private processStandardQueueMessages; processMessages(messages: Message[], options?: ProcessMessageOptions): Promise<IFailedConsumerMessages>; processMessage(message: Message, options?: ProcessMessageOptions): Promise<void>; getTopicReference(topic: Topic): string; getInternalTopicName(topic: Topic): string; getQueues(): Queue[]; getQueueReference(topic: Topic): string; getInternalQueueName(topic: Topic): string; private getQueueUrlFromMessage; private getQueueUrlFromARN; private getMessageIdFromMessage; private getQueueNameFromUrl; private saveEventToOutbox; private getOutboxTopicName; private getOutboxEmitOptions; private getApproximateReceiveCount; }