UNPKG

@awesomeniko/kafka-trail

Version:

A Node.js library for managing message queue with Kafka

27 lines 984 B
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