@awesomeniko/kafka-trail
Version:
A Node.js library for managing message queue with Kafka
37 lines (36 loc) • 1.81 kB
TypeScript
import type { Logger } 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.js";
import { type KTTopicEvent, type KTTopicPayloadWithMeta } from "../kafka/topic.js";
import { KafkaTopicName } from "../libs/branded-types/kafka/index.js";
type KTOtelApi = Pick<typeof import("@opentelemetry/api"), "context" | "trace" | "SpanKind" | "SpanStatusCode">;
declare class KTMessageQueue<Ctx extends object> {
#private;
constructor(params?: {
ctx: () => Ctx & {
logger?: Logger;
};
tracingSettings?: {
otel?: KTOtelApi;
addPayloadToTrace: boolean;
};
});
getConsumer(): KTKafkaConsumer | undefined;
getProducer(): KTKafkaProducer | undefined;
getAdmin(): import("kafkajs").Admin | undefined;
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 };