@message-queue-toolkit/sqs
Version:
SQS adapter for message-queue-toolkit
31 lines (30 loc) • 1.7 kB
TypeScript
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>;
}