UNPKG

@message-queue-toolkit/sns

Version:
29 lines (28 loc) 2.35 kB
import type { SNSClient } from '@aws-sdk/client-sns'; import type { SQSConsumerDependencies, SQSConsumerOptions, SQSCreationConfig, SQSMessage, SQSQueueLocatorType } from '@message-queue-toolkit/sqs'; import { AbstractSqsConsumer } from '@message-queue-toolkit/sqs'; import type { SNSSubscriptionOptions } from '../utils/snsSubscriber'; import type { STSClient } from '@aws-sdk/client-sts'; import type { SNSCreationConfig, SNSOptions, SNSTopicLocatorType } from './AbstractSnsService'; export type SNSSQSConsumerDependencies = SQSConsumerDependencies & { snsClient: SNSClient; stsClient: STSClient; }; export type SNSSQSCreationConfig = SQSCreationConfig & SNSCreationConfig; export type SNSSQSQueueLocatorType = Partial<SQSQueueLocatorType> & SNSTopicLocatorType & { subscriptionArn?: string; }; export type SNSSQSConsumerOptions<MessagePayloadType extends object, ExecutionContext, PrehandlerOutput> = SQSConsumerOptions<MessagePayloadType, ExecutionContext, PrehandlerOutput, SNSSQSCreationConfig, SNSSQSQueueLocatorType> & SNSOptions & { subscriptionConfig?: SNSSubscriptionOptions; }; export declare abstract class AbstractSnsSqsConsumer<MessagePayloadSchemas extends object, ExecutionContext, PrehandlerOutput = undefined> extends AbstractSqsConsumer<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput, SNSSQSCreationConfig, SNSSQSQueueLocatorType, SNSSQSConsumerOptions<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput>> { private readonly subscriptionConfig?; private readonly snsClient; private readonly stsClient; protected topicArn: string; protected subscriptionArn: string; protected constructor(dependencies: SNSSQSConsumerDependencies, options: SNSSQSConsumerOptions<MessagePayloadSchemas, ExecutionContext, PrehandlerOutput>, executionContext: ExecutionContext); init(): Promise<void>; protected resolveMessage(message: SQSMessage): import("@lokalise/node-core").Either<import("@message-queue-toolkit/core").MessageInvalidFormatError | import("@message-queue-toolkit/core").MessageValidationError, import("@message-queue-toolkit/core").ResolvedMessage>; protected resolveSchema(messagePayload: MessagePayloadSchemas): import("@lokalise/node-core").Either<Error, import("zod").ZodType<MessagePayloadSchemas, import("zod").ZodTypeDef, MessagePayloadSchemas>>; }