UNPKG

@iamdeniz/aws-sqs-consumer

Version:

Advanced AWS SQS message consumer with retry, DLQ, batch processing, metrics, and middleware support

58 lines (57 loc) 1.6 kB
import { SQSClient } from '@aws-sdk/client-sqs'; import { BatchMessageHandler, MessageHandler } from '../types/handlers'; import DeadLetterQueueOptions from './dlq'; import MetricsOptions from './metrics'; import { MiddlewareOptions } from './middleware'; import BatchOptions from './options'; import RetryOptions from './retry'; /** * HTTP options for AWS SDK */ export interface AwsHttpOptions { proxy?: string; timeout?: number; connectTimeout?: number; } /** * AWS credentials configuration */ export interface AwsCredentials { accessKeyId?: string; secretAccessKey?: string; sessionToken?: string; profile?: string; } /** * AWS configuration including credentials and region */ export interface AwsConfig extends AwsCredentials { region?: string; endpoint?: string; httpOptions?: AwsHttpOptions; useDefaultCredentialProviderChain?: boolean; } /** * Main consumer options */ export interface ConsumerOptions { url: string; handler?: MessageHandler; batchHandler?: BatchMessageHandler; attributeNames?: string[]; messageAttributeNames?: string[]; batchSize?: number; visibilityTimeout?: number; waitTimeSeconds?: number; authenticationErrorTimeout?: number; pollingWaitTimeMs?: number; terminateVisibilityTimeout?: boolean; sqs?: SQSClient; parsePayload?: boolean; batchOptions?: BatchOptions; deadLetterQueueOptions?: DeadLetterQueueOptions; retryOptions?: RetryOptions; middlewareOptions?: MiddlewareOptions; metricsOptions?: MetricsOptions; awsConfig?: AwsConfig; }