UNPKG

@message-queue-toolkit/amqp

Version:
32 lines (31 loc) 3.88 kB
import type { CommonCreationConfigType, EventRegistry, MessagePublishType, MessageSchemaType, MetadataFiller, PublisherBaseEventType, PublisherMessageMetadataType } from '@message-queue-toolkit/core'; import { AbstractPublisherManager } from '@message-queue-toolkit/core'; import type { AmqpAwareEventDefinition } from '@message-queue-toolkit/schemas'; import type z from 'zod'; import type { AMQPPublisherOptions, AbstractAmqpPublisher } from './AbstractAmqpPublisher.ts'; import type { AbstractAmqpQueuePublisher, AmqpQueueMessageOptions } from './AbstractAmqpQueuePublisher.ts'; import type { AMQPDependencies, AMQPQueueCreationConfig, AMQPQueueLocator } from './AbstractAmqpService.ts'; import type { AmqpPublisherFactory } from './CommonAmqpPublisherFactory.ts'; export type { AmqpAwareEventDefinition }; export type AmqpPublisherManagerDependencies<SupportedEvents extends AmqpAwareEventDefinition[]> = { eventRegistry: EventRegistry<SupportedEvents>; } & AMQPDependencies; export type AmqpPublisherManagerOptions<PublisherType extends AbstractAmqpPublisher<EventType, MessageOptionsType, CreationConfig, LocatorConfig>, MessageOptionsType, PublisherOptionsType extends Omit<AMQPPublisherOptions<EventType, CreationConfig, LocatorConfig>, 'creationConfig'>, EventType extends PublisherBaseEventType, MetadataType, CreationConfig extends CommonCreationConfigType = AMQPQueueCreationConfig, LocatorConfig extends object = AMQPQueueLocator> = { metadataField?: string; publisherFactory: AmqpPublisherFactory<PublisherType, EventType, MessageOptionsType, PublisherOptionsType>; metadataFiller: MetadataFiller<EventType, MetadataType>; newPublisherOptions: Omit<AMQPPublisherOptions<EventType, CreationConfig, LocatorConfig>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'> & { creationConfig?: Omit<CreationConfig, 'queueName'>; }; }; export type AmqpMessageSchemaType<T extends AmqpAwareEventDefinition> = z.infer<T['publisherSchema']>; export declare class AmqpQueuePublisherManager<T extends AbstractAmqpQueuePublisher<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, SupportedEventDefinitions extends AmqpAwareEventDefinition[], MetadataType = PublisherMessageMetadataType> extends AbstractPublisherManager<AmqpAwareEventDefinition, NonNullable<SupportedEventDefinitions[number]['queueName']>, AbstractAmqpQueuePublisher<z.infer<SupportedEventDefinitions[number]['publisherSchema']>>, AMQPDependencies, AMQPQueueCreationConfig, AMQPQueueLocator, AmqpMessageSchemaType<AmqpAwareEventDefinition>, Omit<AMQPPublisherOptions<z.infer<SupportedEventDefinitions[number]['publisherSchema']>, AMQPQueueCreationConfig, AMQPQueueLocator>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'>, SupportedEventDefinitions, MetadataType, AmqpQueueMessageOptions> { constructor(dependencies: AmqpPublisherManagerDependencies<SupportedEventDefinitions>, options: AmqpPublisherManagerOptions<T, AmqpQueueMessageOptions, AMQPPublisherOptions<z.infer<SupportedEventDefinitions[number]['publisherSchema']>, AMQPQueueCreationConfig, AMQPQueueLocator>, z.infer<SupportedEventDefinitions[number]['publisherSchema']>, MetadataType>); protected resolveCreationConfig(queueName: NonNullable<SupportedEventDefinitions[number]['queueName']>): AMQPQueueCreationConfig; /** * @deprecated use `publishSync` instead. */ publish(): Promise<MessageSchemaType<SupportedEventDefinitions[number]>>; publishSync(queue: NonNullable<SupportedEventDefinitions[number]['queueName']>, message: MessagePublishType<SupportedEventDefinitions[number]>, precedingEventMetadata?: Partial<MetadataType>, messageOptions?: AmqpQueueMessageOptions): MessageSchemaType<SupportedEventDefinitions[number]>; protected resolveEventTarget(event: AmqpAwareEventDefinition): NonNullable<SupportedEventDefinitions[number]['queueName']> | undefined; }