UNPKG

@message-queue-toolkit/sqs

Version:
31 lines (30 loc) 1.7 kB
import type { CreateQueueRequest, SQSClient } from '@aws-sdk/client-sqs'; import type { QueueDependencies, QueueOptions } from '@message-queue-toolkit/core'; import { AbstractQueueService } from '@message-queue-toolkit/core'; import type { SQSMessage } from '../types/MessageTypes'; export declare const SQS_MESSAGE_MAX_SIZE: number; export type SQSDependencies = QueueDependencies & { sqsClient: SQSClient; }; export type ExtraSQSCreationParams = { topicArnsWithPublishPermissionsPrefix?: string; updateAttributesIfExists?: boolean; forceTagUpdate?: boolean; }; export type SQSCreationConfig = { queue: CreateQueueRequest; updateAttributesIfExists?: boolean; forceTagUpdate?: boolean; } & ExtraSQSCreationParams; export type SQSQueueLocatorType = { queueUrl: string; }; export declare abstract class AbstractSqsService<MessagePayloadType extends object, QueueLocatorType extends object = SQSQueueLocatorType, CreationConfigType extends SQSCreationConfig = SQSCreationConfig, SQSOptionsType extends QueueOptions<CreationConfigType, QueueLocatorType> = QueueOptions<CreationConfigType, QueueLocatorType>, DependenciesType extends SQSDependencies = SQSDependencies, PrehandlerOutput = unknown, ExecutionContext = unknown> extends AbstractQueueService<MessagePayloadType, SQSMessage, DependenciesType, CreationConfigType, QueueLocatorType, SQSOptionsType, PrehandlerOutput, ExecutionContext> { protected readonly sqsClient: SQSClient; protected queueName: string; protected queueUrl: string; protected queueArn: string; constructor(dependencies: DependenciesType, options: SQSOptionsType); init(): Promise<void>; close(): Promise<void>; }