UNPKG

@kwikpik/server-libs

Version:

Kwikpik-Server-Libs ===================================================================================================================================================================================================

129 lines (128 loc) 3.58 kB
export interface LocalKafkaInstanceOpts { /** * Client ID */ clientId?: string; /** * Port to connect to */ port?: number; /** * How long in seconds to wait for a successful connection. Defaults to 1s */ connectTimeout?: number; /** * Whether to connect using localhost */ shouldUseLocalhost?: boolean; /** * Service name to use in case localhost connection is disabled */ serviceName?: string; } export interface LocalKafkaProducerOpts { /** * Whether to automatically create topics. */ shouldAutoCreateTopics?: boolean; } export interface LocalKafkaConsumerOpts { /** * Whether to automatically create topics */ shouldAutoCreateTopics?: boolean; /** * Group ID */ groupId: string; /** * Session timeout in seconds. Defaults to 60s */ sessionTimeout?: number; } declare class LocalKafkaInstance { private K; private producer; private consumer; private topicsToHandlersMap; constructor(opts?: LocalKafkaInstanceOpts); /** * * @param opts Producer configuration. {@link LocalKafkaProducerOpts | See implementation}. */ configureProducer(opts?: LocalKafkaProducerOpts): void; /** * * @param opts Consumer configuration. {@link LocalKafkaConsumerOpts | See implementation}. */ configureConsumer(opts: LocalKafkaConsumerOpts): void; /** * * @param silenceInfoLogs Don't log connection info. */ connectProducer(silenceInfoLogs?: boolean): void; /** * * @param silenceInfoLogs Don't log connection info. */ disconnectProducer(silenceInfoLogs?: boolean): void; /** * * @param silenceInfoLogs Don't log connection info. */ connectConsumer(silenceInfoLogs?: boolean): void; /** * * @param silenceInfoLogs Don't log connection info. */ disconnectConsumer(silenceInfoLogs?: boolean): void; /** * * @param topic Topic to send message to. * @param message Message to send. * @param logSendResult Whether to log result. */ produce(topic: string, message: Record<string, any> | Record<string, any>[], logSendResult?: boolean): void; subscribe(opts: { topic: string; listener?: (value: Record<string, any>, topic?: string) => void | Promise<void>; }): void; invokeSubscriptions(numberOfConcurrentPartitions?: number): void; static constructDefault(): LocalKafkaInstance; } /** * Construct Kafka instance using default options * @returns */ export declare const initializeKafkaWithDefaultOptions: () => LocalKafkaInstance; /** * * @param opts Instance configuration. {@link LocalKafkaInstanceOpts | See implementation}. * @returns */ export declare const initializeKafka: (opts?: LocalKafkaInstanceOpts) => LocalKafkaInstance; /** * * @param kInstance LocalKafkaInstance to derive consumer from. * @param opts Consumer configuration. {@link LocalKafkaConsumerOpts | See implementation}. * @param silenceInfoLogs Don't log connection info. */ export declare const configureConnectedConsumer: ( kInstance: LocalKafkaInstance, opts: LocalKafkaConsumerOpts, silenceInfoLogs?: boolean ) => void; /** * * @param kInstance LocalKafkaInstance to derive producer from. * @param opts Consumer configuration. {@link LocalKafkaProducerOpts | See implementation}. * @param silenceInfoLogs Don't log connection info. */ export declare const configureConnectedProducer: ( kInstance: LocalKafkaInstance, opts?: LocalKafkaProducerOpts, silenceInfoLogs?: boolean ) => void; export type LocalKafkaInstanceType = LocalKafkaInstance; export {}; //# sourceMappingURL=kafka.d.ts.map