UNPKG

@aks007/kafka-js

Version:

NodeBase code for basic tools

54 lines (48 loc) 2.25 kB
import { Logger } from 'winston'; import { Kafka, Producer, logLevel, Consumer } from 'kafkajs'; type Callback1Void<Input> = (input: Input) => void; declare abstract class BaseKafkaService<Child> { protected _logger: Logger | undefined; protected _host: string | undefined; protected _pollTimeInterval: number | undefined; protected _pollTimeout: number | undefined; protected _numConsumers: number | undefined; protected _topic: string | undefined; protected _group: string | undefined; protected _clientId: string | undefined; protected kafka: Kafka; protected producer: Producer | undefined; protected onNewMessageReceived: ((message: Record<string, string[]>) => void) | undefined; private consumers; protected constructor(host: string, clientId: string); setLogger(value: Logger): Child; setPollTimeInterval(value: number | undefined): Child; clientId(value: string | undefined): Child; setPollTimeout(value: number | undefined): Child; setNumConsumers(value: number | undefined): Child; setTopic(value: string | undefined): Child; setGroup(value: string | undefined): Child; disconnect(): void; toWinstonLogLevel: (level: logLevel) => "error" | "warn" | "info" | "debug"; init(): Promise<void>; setUp(): void; protected abstract getThis(): Child; protected initSender(): Promise<void>; protected startPolling(): void; protected _poll(consumer: Consumer): Promise<void>; protected setOnMessageReceived(handler: Callback1Void<Record<string, string[]>>): Promise<void>; protected initConsumer(): Promise<void>; } interface QueueInterface<Entry> { send(key: string, message: Entry | Entry[]): void; init(): void; deInit(): void; } declare class KafkaQueueService<Entry> extends BaseKafkaService<KafkaQueueService<Entry>> implements QueueInterface<Entry> { constructor(host: string, clientId: string); send(key: string, message: Entry | Entry[]): Promise<void>; deInit(): void; onReceive(handler: Callback1Void<Record<string, Entry[]>>): Promise<KafkaQueueService<Entry>>; protected getThis(): KafkaQueueService<Entry>; } export { BaseKafkaService, KafkaQueueService, type QueueInterface };