@goparrot/pubsub-event-bus
Version:
NestJS EventBus extension for RabbitMQ PubSub
29 lines • 955 B
JavaScript
import { __decorate, __metadata } from "tslib";
import { Injectable } from '@nestjs/common';
import { DefaultPubSub } from '@nestjs/cqrs/dist/helpers/default-pubsub';
import { Subject } from 'rxjs';
import { AbstractPubsubEvent } from '../interface';
import { Producer } from './Producer';
let Publisher = class Publisher extends DefaultPubSub {
constructor(subject$, producer) {
super(subject$);
this.producer = producer;
}
async publish(event) {
if (event instanceof AbstractPubsubEvent) {
event.localEventEnabled() && super.publish(event);
return this.producer.produce(event);
}
return this.publishLocally(event);
}
publishLocally(event) {
return super.publish(event);
}
};
Publisher = __decorate([
Injectable(),
__metadata("design:paramtypes", [Subject,
Producer])
], Publisher);
export { Publisher };
//# sourceMappingURL=Publisher.js.map