UNPKG

@awesomeniko/kafka-trail

Version:

A Node.js library for managing message queue with Kafka

35 lines (34 loc) 1.63 kB
import { pino } from "pino"; import type { KTHandler } from "../kafka/consumer-handler.js"; import type { KafkaBrokerConfig, KafkaLogger } from "../kafka/kafka-broker.js"; import type { KTKafkaConsumerConfig } from "../kafka/kafka-consumer.js"; import { KTKafkaConsumer } from "../kafka/kafka-consumer.js"; import { KTKafkaProducer } from "../kafka/kafka-producer.js"; import type { KTTopicBatchPayload } from "../kafka/topic-batch.ts"; import { type KTTopicEvent, type KTTopicPayloadWithMeta } from "../kafka/topic.js"; import { KafkaTopicName } from "../libs/branded-types/kafka/index.js"; declare class KTMessageQueue<Ctx extends object> { #private; constructor(params?: { ctx: () => Ctx & { logger?: pino.Logger; }; tracingSettings?: { addPayloadToTrace: boolean; }; }); getConsumer(): KTKafkaConsumer; getProducer(): KTKafkaProducer; getAdmin(): import("kafkajs").Admin; initProducer(params: KafkaBrokerConfig): Promise<void>; initConsumer(params: KTKafkaConsumerConfig): Promise<void>; destroyAll(): Promise<void>; destroyProducer(): Promise<void>; destroyConsumer(): Promise<void>; initTopics<T extends object>(topicEvents: KTTopicEvent<T>[]): Promise<void>; getRegisteredHandler(topic: KafkaTopicName): KTHandler<any, Ctx & KafkaLogger> | undefined; registerHandlers<T extends object>(mqHandlers: KTHandler<T, Ctx & KafkaLogger>[]): void; publishSingleMessage(topic: KTTopicPayloadWithMeta): Promise<void>; publishBatchMessages(topic: KTTopicBatchPayload): Promise<void>; } export { KTMessageQueue };