@message-queue-toolkit/sns
Version:
SNS adapter for message-queue-toolkit
29 lines (28 loc) • 2.35 kB
TypeScript
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>>;
}