UNPKG

@message-queue-toolkit/kafka

Version:
37 lines (36 loc) 1.97 kB
import { type CommonLogger, type ErrorReporter } from '@lokalise/node-core'; import { type HandlerSpy, type HandlerSpyParams, type MessageProcessingResult, type PublicHandlerSpy } from '@message-queue-toolkit/core'; import type { BaseOptions } from '@platformatic/kafka'; import type { KafkaConfig, KafkaDependencies, SupportedMessageValues, TopicConfig } from './types.ts'; export type BaseKafkaOptions = { kafka: KafkaConfig; messageTypeField?: string; messageIdField?: string; /** * The field in the message headers that contains the request ID. * This is used to correlate logs and transactions with the request. * Defaults to 'x-request-id'. */ headerRequestIdField?: string; handlerSpy?: HandlerSpy<object> | HandlerSpyParams | boolean; logMessages?: boolean; } & Omit<BaseOptions, keyof KafkaConfig>; export declare abstract class AbstractKafkaService<TopicsConfig extends TopicConfig[], KafkaOptions extends BaseKafkaOptions> { protected readonly errorReporter: ErrorReporter; protected readonly logger: CommonLogger; protected readonly options: KafkaOptions; protected readonly _handlerSpy?: HandlerSpy<SupportedMessageValues<TopicsConfig>>; constructor(dependencies: KafkaDependencies, options: KafkaOptions); abstract init(): Promise<void>; abstract close(): Promise<void>; get handlerSpy(): PublicHandlerSpy<SupportedMessageValues<TopicsConfig>>; protected resolveMessageType(message: SupportedMessageValues<TopicsConfig>): string | undefined; protected resolveMessageId(message: SupportedMessageValues<TopicsConfig>): string | undefined; protected resolveHeaderRequestIdField(): string; protected handleMessageProcessed(params: { message: SupportedMessageValues<TopicsConfig>; processingResult: MessageProcessingResult; topic: string; }): void; protected handlerError(error: unknown, context?: Record<string, unknown>): void; }