@allthings/cloud-toolkit
Version:
Standardizes the setup of aws, Datadog and other things
27 lines (26 loc) • 1.48 kB
TypeScript
import { BatchResultErrorEntry, DeleteMessageCommandInput, MessageAttributeValue, ReceiveMessageCommandOutput, SendMessageBatchRequestEntry, SendMessageBatchResultEntry, SQSClientConfig } from '@aws-sdk/client-sqs';
import { Logger } from 'winston';
export interface ISQS {
clientConfig?: SQSClientConfig;
logger?: Logger;
}
export type TGetQueueUrl = (queueName: string) => Promise<string | undefined>;
export type TSendMessage = (queueUrl: string, message: string, fifoSettings?: {
MessageDeduplicationId?: string;
MessageGroupId: string;
}, messageAttributes?: Record<string, MessageAttributeValue>, messageDelay?: number) => Promise<string | undefined>;
export type TGetQueueItems = (queueUrl: string, maxNumberOfMessages?: number) => Promise<ReceiveMessageCommandOutput | undefined>;
export type TDeleteQueueItem = (queueUrl: string, receiptHandle: DeleteMessageCommandInput['ReceiptHandle']) => Promise<ReceiveMessageCommandOutput | undefined>;
export type TSendBatchMessages = (queueUrl: string, queueEntries: SendMessageBatchRequestEntry[]) => Promise<{
failed: BatchResultErrorEntry[] | undefined;
successful: SendMessageBatchResultEntry[] | undefined;
}>;
export interface ISQSInstance {
deleteQueueItem: TDeleteQueueItem;
getQueueItems: TGetQueueItems;
getQueueUrl: TGetQueueUrl;
sendBatchMessages: TSendBatchMessages;
sendMessage: TSendMessage;
}
declare const sqs: (userConfig: ISQS) => ISQSInstance;
export default sqs;