@allthings/cloud-toolkit
Version:
Standardizes the setup of aws, datadog and other things
21 lines (20 loc) • 1.09 kB
TypeScript
import { DeleteMessageCommandInput, MessageAttributeValue, ReceiveMessageCommandOutput, 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>;
declare const sqs: (userConfig: ISQS) => {
deleteQueueItem: TDeleteQueueItem;
getQueueItems: TGetQueueItems;
getQueueUrl: TGetQueueUrl;
sendMessage: TSendMessage;
};
export default sqs;