UNPKG

@message-queue-toolkit/amqp

Version:
27 lines (26 loc) 2.08 kB
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'>>; }