@message-queue-toolkit/sns
Version:
SNS adapter for message-queue-toolkit
37 lines • 1.5 kB
JavaScript
import { AbstractPublisherManager } from '@message-queue-toolkit/core';
import { CommonSnsPublisherFactory } from "./CommonSnsPublisherFactory.js";
export class SnsPublisherManager extends AbstractPublisherManager {
constructor(dependencies, options) {
super({
isAsync: true,
eventRegistry: dependencies.eventRegistry,
metadataField: options.metadataField ?? 'metadata',
metadataFiller: options.metadataFiller,
newPublisherOptions: options.newPublisherOptions,
publisherDependencies: {
snsClient: dependencies.snsClient,
stsClient: dependencies.stsClient,
logger: dependencies.logger,
errorReporter: dependencies.errorReporter,
},
publisherFactory: options.publisherFactory ?? new CommonSnsPublisherFactory(),
});
}
publish(topic, message, precedingEventMetadata, messageOptions) {
// Purpose of this override is to provide better name for the first argument
// For SNS it is going to be topic
return super.publish(topic, message, precedingEventMetadata, messageOptions);
}
resolveCreationConfig(eventTarget) {
return {
...this.newPublisherOptions,
topic: {
Name: eventTarget,
},
};
}
resolveEventTarget(event) {
return event.snsTopic;
}
}
//# sourceMappingURL=SnsPublisherManager.js.map