UNPKG

@allthings/cloud-toolkit

Version:

Standardizes the setup of aws, Datadog and other things

27 lines (26 loc) 1.48 kB
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;