@message-queue-toolkit/sns
Version:
SNS adapter for message-queue-toolkit
25 lines (24 loc) • 1.97 kB
TypeScript
import type { Either } from '@lokalise/node-core';
import { type AsyncPublisher, type BarrierResult, type MessageInvalidFormatError, type MessageValidationError, type OffloadedPayloadPointerPayload, type QueuePublisherOptions, type ResolvedMessage } from '@message-queue-toolkit/core';
import type { SNSCreationConfig, SNSDependencies, SNSTopicLocatorType } from './AbstractSnsService';
import { AbstractSnsService } from './AbstractSnsService';
export type SNSMessageOptions = {
MessageGroupId?: string;
MessageDeduplicationId?: string;
};
export type SNSPublisherOptions<MessagePayloadType extends object> = QueuePublisherOptions<SNSCreationConfig, SNSTopicLocatorType, MessagePayloadType>;
export declare abstract class AbstractSnsPublisher<MessagePayloadType extends object> extends AbstractSnsService<MessagePayloadType, MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SNSMessageOptions> {
private readonly messageSchemaContainer;
private readonly isDeduplicationEnabled;
private initPromise?;
constructor(dependencies: SNSDependencies, options: SNSPublisherOptions<MessagePayloadType>);
publish(message: MessagePayloadType, options?: SNSMessageOptions): Promise<void>;
protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, ResolvedMessage>;
protected resolveSchema(message: MessagePayloadType): Either<Error, import("zod").ZodType<MessagePayloadType, import("zod").ZodTypeDef, MessagePayloadType>>;
protected resolveNextFunction(): () => void;
protected processPrehandlers(): Promise<undefined>;
protected preHandlerBarrier<BarrierOutput>(): Promise<BarrierResult<BarrierOutput>>;
processMessage(): Promise<Either<'retryLater', 'success'>>;
protected isDeduplicationEnabledForMessage(message: MessagePayloadType): boolean;
protected sendMessage(payload: MessagePayloadType | OffloadedPayloadPointerPayload, options: SNSMessageOptions): Promise<void>;
}