UNPKG

@awesomeniko/kafka-trail

Version:

A Node.js library for managing message queue with Kafka

17 lines (16 loc) 935 B
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>;