UNPKG

@awesomeniko/kafka-trail

Version:

A Node.js library for managing message queue with Kafka

36 lines (35 loc) 1.18 kB
import type { KafkaConfig } from "kafkajs"; import KafkaJS from "kafkajs"; import type pino from "pino"; import { lz4Codec } from "../codec/lz4-codec.js"; import type { KafkaClientId } from "../libs/branded-types/kafka/index.js"; type KTKafkaSettings = { brokerUrls: string[]; clientId: KafkaClientId; connectionTimeout: number; compressionCodec?: { codecType: keyof typeof CompressionCodecs; codecFn: lz4Codec; }; }; export type KafkaBrokerConfig = { kafkaSettings: KTKafkaSettings; pureConfig: Pick<KafkaConfig, "ssl" | "sasl" | "authenticationTimeout" | "reauthenticationThreshold" | "requestTimeout" | "enforceRequestTimeout" | "retry" | "socketFactory" | "logLevel" | "logCreator">; }; export type KafkaLogger = { logger: pino.Logger; }; export type KafkaWithLogger<T extends KafkaBrokerConfig> = T & KafkaLogger; declare const CompressionCodecs: { 1: () => any; 2: () => any; 3: () => any; 4: () => any; }; declare class KTKafkaBroker { _kafka: KafkaJS.Kafka; constructor(params: KafkaBrokerConfig); encode(message: object): string; decode<T>(message: string): T; } export { KTKafkaBroker };