UNPKG

kafka-nestjs

Version:

A structured Kafka integration for NestJS inspired by BullMQ, offering decorators, modular configuration, and a scalable consumer/producer architecture.

64 lines 2.97 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; var KafkaProducerService_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.KafkaProducerService = void 0; const common_1 = require("@nestjs/common"); const kafkajs_1 = require("kafkajs"); const kafka_constants_1 = require("../constants/kafka.constants"); let KafkaProducerService = KafkaProducerService_1 = class KafkaProducerService { constructor(createPartitioner = kafkajs_1.Partitioners.DefaultPartitioner, options) { this.createPartitioner = createPartitioner; this.options = options; this.logger = new common_1.Logger(KafkaProducerService_1.name); this.kafka = new kafkajs_1.Kafka(this.options); this.producer = this.kafka.producer({ createPartitioner: this.createPartitioner, }); } async onModuleInit() { await this.producer.connect(); this.logger.log({ message: 'Kafka producer connected', info: { clientId: this.options.clientId, brokers: this.options.brokers, }, }, this.onModuleInit.name); } async send(payload) { await this.producer.send(payload); } async onModuleDestroy() { if (this.producer) { await this.producer.disconnect(); this.logger.log({ message: 'Kafka producer disconnected', info: { clientId: this.options.clientId, brokers: this.options.brokers, }, }, this.onModuleDestroy.name); } } }; exports.KafkaProducerService = KafkaProducerService; exports.KafkaProducerService = KafkaProducerService = KafkaProducerService_1 = __decorate([ (0, common_1.Injectable)(), __param(0, (0, common_1.Optional)()), __param(0, (0, common_1.Inject)('KAFKA_PARTITIONER')), __param(1, (0, common_1.Inject)(kafka_constants_1.KAFKA_MODULE_OPTIONS)), __metadata("design:paramtypes", [Function, Object]) ], KafkaProducerService); //# sourceMappingURL=kafka-producer.service.js.map