@awesomeniko/kafka-trail
Version:
A Node.js library for managing message queue with Kafka
27 lines • 984 B
JavaScript
import KafkaJS from "kafkajs";
import { lz4Codec } from "../codec/lz4-codec.js";
const { Kafka, CompressionTypes, CompressionCodecs } = KafkaJS;
class KTKafkaBroker {
_kafka;
constructor(params) {
const clientId = params.kafkaSettings.clientId ?? `consumer-${Date.now()}`;
const { brokerUrls, connectionTimeout } = params.kafkaSettings;
CompressionCodecs[params.kafkaSettings.compressionCodec?.codecType ?? CompressionTypes.LZ4] = () => params.kafkaSettings.compressionCodec?.codecFn ?? lz4Codec;
if (!Array.isArray(brokerUrls)) {
throw new Error("KafkaBrokerUrls must be an array");
}
this._kafka = new Kafka({
clientId,
brokers: brokerUrls,
connectionTimeout,
});
}
encode(message) {
return JSON.stringify(message);
}
decode(message) {
return JSON.parse(message);
}
}
export { KTKafkaBroker };
//# sourceMappingURL=kafka-broker.js.map