@message-queue-toolkit/amqp
Version:
AMQP adapter for message-queue-toolkit
46 lines • 1.88 kB
JavaScript
import { AbstractPublisherManager } from '@message-queue-toolkit/core';
import { CommonAmqpQueuePublisherFactory } from "./CommonAmqpPublisherFactory.js";
export class AmqpQueuePublisherManager 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 CommonAmqpQueuePublisherFactory(),
});
}
resolveCreationConfig(queueName) {
return {
...this.newPublisherOptions,
queueOptions: {},
queueName,
};
}
/**
* @deprecated use `publishSync` instead.
*/
publish() {
throw new Error('Please use `publishSync` method for AMQP publisher managers');
}
publishSync(queue, message, precedingEventMetadata, messageOptions) {
const publisher = this.targetToPublisherMap[queue];
if (!publisher) {
throw new Error(`No publisher for queue ${queue}`);
}
const messageDefinition = this.resolveMessageDefinition(queue, message);
const resolvedMessage = this.resolveMessage(messageDefinition, message, precedingEventMetadata);
publisher.publish(resolvedMessage, messageOptions);
return resolvedMessage;
}
resolveEventTarget(event) {
return event.queueName;
}
}
//# sourceMappingURL=AmqpQueuePublisherManager.js.map