@rewaa/event-broker
Version:
A broker for all the events that Rewaa will ever produce or consume
30 lines (29 loc) • 1.82 kB
TypeScript
import { SQS, SQSClientConfig, SendMessageResult, SendMessageRequest, SendMessageBatchResult, SendMessageBatchRequest } from "@aws-sdk/client-sqs";
import { ISQSMessage, ISQSMessageOptions, Logger, Topic } from "../types";
export declare class SQSProducer {
private readonly logger;
private readonly sqs;
constructor(logger: Logger, config: SQSClientConfig);
get client(): SQS;
send: (queueUrl: string, message: ISQSMessage, messageOptions: ISQSMessageOptions) => Promise<SendMessageResult>;
getSendMessageRequestInput(queueUrl: string, message: ISQSMessage, messageOptions: ISQSMessageOptions): SendMessageRequest;
sendBatch: (queueUrl: string, messages: ISQSMessage[]) => Promise<SendMessageBatchResult>;
getBatchMessageRequest(queueUrl: string, messages: ISQSMessage[]): SendMessageBatchRequest;
createQueue: (queueName: string, attributes: Record<string, string>, tags?: Record<string, string>) => Promise<string | undefined>;
createQueueFromTopic(params: {
queueName: string;
topic: Topic;
isDLQ: boolean;
queueArn: string;
dlqArn?: string;
}): Promise<void>;
getQueueAttributes: (queueUrl: string, attributes: string[]) => Promise<Record<string, string> | undefined>;
deleteQueue: (queueUrl: string) => Promise<boolean>;
deleteMessage: (queueUrl: string, receiptHandle: string) => Promise<boolean>;
deleteMessages: (queueUrl: string, receiptHandles: string[]) => Promise<boolean>;
getQueueUrl: (queueName: string) => Promise<string | undefined>;
setQueueAttributes: (queueUrl: string, attributes: Record<string, string>) => Promise<void>;
tagQueue: (queueUrl: string, tags: Record<string, string>) => Promise<void>;
isFifoQueue: (queueUrl: string) => boolean;
private getMessageAttributes;
}