@message-queue-toolkit/amqp
Version:
AMQP adapter for message-queue-toolkit
27 lines (26 loc) • 2.08 kB
TypeScript
import type { Either } from '@lokalise/node-core';
import type { BarrierResult, CommonCreationConfigType, MessageInvalidFormatError, MessageValidationError, QueuePublisherOptions, ResolvedMessage, SyncPublisher } from '@message-queue-toolkit/core';
import type { ZodSchema } from 'zod';
import type { AMQPDependencies } from './AbstractAmqpService.ts';
import { AbstractAmqpService } from './AbstractAmqpService.ts';
export type AMQPPublisherOptions<MessagePayloadType extends object, CreationConfig extends CommonCreationConfigType, LocatorConfig extends object> = QueuePublisherOptions<CreationConfig, LocatorConfig, MessagePayloadType> & {
exchange?: string;
isLazyInitEnabled?: boolean;
};
export declare abstract class AbstractAmqpPublisher<MessagePayloadType extends object, MessageOptionsType, CreationConfig extends CommonCreationConfigType, LocatorConfig extends object> extends AbstractAmqpService<MessagePayloadType, AMQPDependencies, unknown, unknown, CreationConfig, LocatorConfig> implements SyncPublisher<MessagePayloadType, MessageOptionsType> {
protected readonly exchange?: string;
private readonly messageSchemaContainer;
private readonly isLazyInitEnabled;
private initPromise?;
constructor(dependencies: AMQPDependencies, options: AMQPPublisherOptions<MessagePayloadType, CreationConfig, LocatorConfig>);
publish(message: MessagePayloadType, options: MessageOptionsType): void;
protected abstract resolveTopicOrQueue(): string;
protected abstract publishInternal(message: Buffer, options: MessageOptionsType): void;
protected resolveSchema(message: MessagePayloadType): Either<Error, ZodSchema<MessagePayloadType>>;
protected resolveMessage(): Either<MessageInvalidFormatError | MessageValidationError, ResolvedMessage>;
protected processPrehandlers(): Promise<unknown>;
protected preHandlerBarrier<BarrierOutput>(): Promise<BarrierResult<BarrierOutput>>;
protected resolveNextFunction(): () => void;
close(): Promise<void>;
processMessage(): Promise<Either<'retryLater', 'success'>>;
}