@awesomeniko/kafka-trail
Version:
A Node.js library for managing message queue with Kafka
35 lines (34 loc) • 1.63 kB
TypeScript
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 };