@message-queue-toolkit/sqs
Version:
SQS adapter for message-queue-toolkit
28 lines (27 loc) • 2.06 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 { ZodSchema } from 'zod';
import type { SQSMessage } from '../types/MessageTypes';
import type { SQSCreationConfig, SQSDependencies, SQSQueueLocatorType } from './AbstractSqsService';
import { AbstractSqsService } from './AbstractSqsService';
export type SQSMessageOptions = {
MessageGroupId?: string;
MessageDeduplicationId?: string;
};
export declare const PAYLOAD_OFFLOADING_ATTRIBUTE_PREFIX = "payloadOffloading.";
export declare const OFFLOADED_PAYLOAD_SIZE_ATTRIBUTE = "payloadOffloading.size";
export declare abstract class AbstractSqsPublisher<MessagePayloadType extends object> extends AbstractSqsService<MessagePayloadType> implements AsyncPublisher<MessagePayloadType, SQSMessageOptions> {
private readonly messageSchemaContainer;
private readonly isDeduplicationEnabled;
private initPromise?;
constructor(dependencies: SQSDependencies, options: QueuePublisherOptions<SQSCreationConfig, SQSQueueLocatorType, MessagePayloadType>);
publish(message: MessagePayloadType, options?: SQSMessageOptions): Promise<void>;
protected resolveNextFunction(): () => void;
protected resolveMessage(_message: SQSMessage): Either<MessageInvalidFormatError | MessageValidationError, ResolvedMessage>;
protected processPrehandlers(): Promise<unknown>;
protected preHandlerBarrier<BarrierOutput>(): Promise<BarrierResult<BarrierOutput>>;
processMessage(): Promise<Either<'retryLater', 'success'>>;
protected isDeduplicationEnabledForMessage(message: MessagePayloadType): boolean;
protected resolveSchema(message: MessagePayloadType): Either<Error, ZodSchema<MessagePayloadType>>;
protected sendMessage(payload: MessagePayloadType | OffloadedPayloadPointerPayload, options: SQSMessageOptions): Promise<void>;
}