UNPKG

@message-queue-toolkit/sns

Version:
25 lines (24 loc) 1.97 kB
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>; }