UNPKG

@message-queue-toolkit/amqp

Version:
54 lines 2.15 kB
import { AbstractPublisherManager } from '@message-queue-toolkit/core'; import { CommonAmqpTopicPublisherFactory } from "./CommonAmqpPublisherFactory.js"; export class AmqpTopicPublisherManager extends AbstractPublisherManager { constructor(dependencies, options) { super({ isAsync: false, eventRegistry: dependencies.eventRegistry, metadataField: options.metadataField ?? 'metadata', metadataFiller: options.metadataFiller, newPublisherOptions: options.newPublisherOptions, publisherDependencies: { amqpConnectionManager: dependencies.amqpConnectionManager, logger: dependencies.logger, errorReporter: dependencies.errorReporter, }, publisherFactory: options.publisherFactory ?? new CommonAmqpTopicPublisherFactory(), }); } resolvePublisherConfigOverrides(exchange) { return { exchange, }; } resolveCreationConfig(exchange) { return { ...this.newPublisherOptions, exchange, updateAttributesIfExists: false, }; } /** * @deprecated use `publishSync` instead. */ publish() { throw new Error('Please use `publishSync` method for AMQP publisher managers'); } publishSync(exchange, message, messageOptions, precedingEventMetadata) { const publisher = this.targetToPublisherMap[exchange]; if (!publisher) { throw new Error(`No publisher for exchange ${exchange}`); } const messageDefinition = this.resolveMessageDefinition(exchange, message); const resolvedMessage = this.resolveMessage(messageDefinition, message, precedingEventMetadata); publisher.publish(resolvedMessage, { routingKey: messageOptions?.routingKey ?? messageDefinition?.topic ?? '', publishOptions: messageOptions?.publishOptions, }); return resolvedMessage; } resolveEventTarget(event) { return event.exchange; } } //# sourceMappingURL=AmqpTopicPublisherManager.js.map