quintoandar-kafka
Advanced tools
Comparing version 0.0.13 to 0.1.0
{ | ||
"name": "quintoandar-kafka", | ||
"version": "0.0.13", | ||
"version": "0.1.0", | ||
"description": "Default Kafka NodeJS lib for QuintoAndar", | ||
@@ -5,0 +5,0 @@ "main": "src/main.js", |
@@ -6,4 +6,3 @@ const kafka = require('kafka-node'); | ||
class KafkaProducer { | ||
constructor({ configs, topic }) { | ||
this.topic = topic; | ||
constructor({ configs }) { | ||
this.configs = configs; | ||
@@ -22,5 +21,2 @@ this.ready = false; | ||
} | ||
if (!this.topic) { | ||
throw new Error('Missing param: topic'); | ||
} | ||
} | ||
@@ -44,5 +40,5 @@ | ||
send(msg) { | ||
send(topic, msg) { | ||
const sendPromisse = new Promise((resolve, reject) => { | ||
const payload = { topic: this.topic, messages: [msg] }; | ||
const payload = { topic, messages: [msg] }; | ||
this.readyPromisse.then(() => { | ||
@@ -49,0 +45,0 @@ this.producer.send([payload], (err, data) => { |
@@ -15,9 +15,2 @@ jest.mock('node-rdkafka'); | ||
}); | ||
it('should throw error when kafka topic is missing', (done) => { | ||
expect(() => { | ||
new KafkaProducer({ configs: { kafkaHost: 'localhost:9092' } }); | ||
}).toThrow('topic'); | ||
done(); | ||
}); | ||
}); | ||
@@ -35,3 +28,3 @@ | ||
it('should configure corretly kafka lib', (done) => { | ||
const producer = new KafkaProducer({ configs, topic }); | ||
const producer = new KafkaProducer({ configs }); | ||
expect(producer.client.configs).toEqual(fullConfigs); | ||
@@ -43,4 +36,4 @@ expect(producer.producer.client).toBe(producer.client); | ||
it('should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs, topic }); | ||
producer.send(msg).then(() => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.send(topic, msg).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
@@ -57,5 +50,5 @@ topic, | ||
it('should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs, topic }); | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
producer.send(msg).then(() => { | ||
producer.send(topic, msg).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
@@ -71,3 +64,3 @@ topic, | ||
it('should reject promise on error', (done) => { | ||
const producer = new KafkaProducer({ configs, topic }); | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
@@ -77,3 +70,3 @@ producer.producer.send = jest.fn().mockImplementation((payload, cb) => { | ||
}); | ||
producer.send(msg).catch((err) => { | ||
producer.send(topic, msg).catch((err) => { | ||
expect(err).toEqual(new Error('some error')); | ||
@@ -80,0 +73,0 @@ done(); |
@@ -19,3 +19,2 @@ import { Writable } from 'stream'; | ||
configs: KafkaClientOptions; | ||
topic: string; | ||
} | ||
@@ -26,3 +25,3 @@ | ||
send(msg: string): Promise<string>; | ||
send(topic: string, msg: string): Promise<string>; | ||
} |
17576
471