@awesomeniko/kafka-trail
Version:
A Node.js library for managing message queue with Kafka
17 lines (16 loc) • 935 B
TypeScript
import type { KTMessageQueue } from "../message-queue/index.js";
import type { KafkaLogger } from "./kafka-broker.js";
import type { KTTopicBatchEvent } from "./topic-batch.js";
import type { KTTopicEvent } from "./topic.js";
export type KTRun<Payload extends object, Ctx extends object> = (payload: Payload[], ctx: Ctx, publisher: Pick<KTMessageQueue<Ctx>, 'publishSingleMessage'>, kafkaTopicParams: {
heartBeat: () => void;
partition: number;
lastOffset: string | undefined;
resolveOffset?: (offset: string) => void;
}) => Promise<void>;
export type KTHandler<Payload extends object, Ctx extends object> = {
topic: KTTopicEvent<Payload> | KTTopicBatchEvent<Payload>;
run: KTRun<Payload, Ctx>;
};
export type CtxWithKafka<T> = T & KafkaLogger;
export declare const KTHandler: <Payload extends object, Ctx extends object>(params: KTHandler<Payload, KafkaLogger & Ctx>) => KTHandler<Payload, KafkaLogger & Ctx>;