@message-queue-toolkit/amqp
Version:
AMQP adapter for message-queue-toolkit
32 lines (31 loc) • 3.88 kB
TypeScript
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;
}