@jiaxinjiang/nest-amqp
Version:
RabbitMQ component for NestJs.
31 lines • 1.21 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@nestjs/common");
const amqp_constants_1 = require("./amqp.constants");
const publisher_service_1 = require("./publisher.service");
const decoratedTokenPrefix = 'AmqpPubliser:';
const decoratedPublishers = new Set();
function createDecoratedPublisherProvider(exchange) {
return {
provide: `${decoratedTokenPrefix}${exchange}`,
useFactory: async (publisher) => {
await publisher.setExchange(exchange);
return publisher;
},
inject: [publisher_service_1.Publisher],
};
}
function InjectPubliser(context) {
decoratedPublishers.add(context);
return common_1.Inject(`${decoratedTokenPrefix}${context}`);
}
exports.InjectPubliser = InjectPubliser;
function createPublishersForDecorated() {
return [...decoratedPublishers.values()].map(exchange => createDecoratedPublisherProvider(exchange));
}
exports.createPublishersForDecorated = createPublishersForDecorated;
function Consume(queue) {
return common_1.SetMetadata(amqp_constants_1.AMQP_CONSUMER_METADATA, queue);
}
exports.Consume = Consume;
//# sourceMappingURL=amqp.decorator.js.map
;