UNPKG

@vpriem/kafka-broker

Version:

Easily compose and manage your kafka resources in one place

31 lines 1.81 kB
import { KafkaConfig, ConsumerConfig } from 'kafkajs'; import { BrokerConfig, BatchConfig, ProducerConfig, ProducerMap, PublicationConfig, PublicationMap, SchemaId, SchemaRegistryConfig, SchemaSubject, SubscriptionConfig, SubscriptionMap, TopicConfig } from './types'; export interface ConfigProducer { kafka: string; producer?: Omit<ProducerConfig, 'batch'>; batch?: BatchConfig; } export interface ConfigSubscription extends SubscriptionConfig { kafka: string; consumer: ConsumerConfig; topics: TopicConfig[]; } export interface ConfigPublication extends PublicationConfig { producer: string; schema?: SchemaId | SchemaSubject; } export interface Config { namespace: string; kafka: Record<string, KafkaConfig>; schemaRegistry?: SchemaRegistryConfig; producers: Record<string, ConfigProducer>; publications: Record<string, ConfigPublication>; subscriptions: Record<string, ConfigSubscription>; } export declare const buildKafka: (config: KafkaConfig, clientId: string) => KafkaConfig; export declare const buildProducers: (producers: ProducerMap, kafka: string, { batch: batchDefaults, ...defaults }?: Partial<ProducerConfig>) => Config['producers']; export declare const buildPublications: (publications: PublicationMap, producer?: string) => Config['publications']; export declare const buildSubscriptions: (subscriptions: SubscriptionMap, groupPrefix: string, kafka: string, defaults?: Partial<ConsumerConfig>) => Config['subscriptions']; export declare const buildSchemaRegistry: (config?: string | SchemaRegistryConfig) => SchemaRegistryConfig | undefined; export declare const buildConfig: ({ namespace, defaults, config, schemaRegistry, producers, publications, subscriptions, }: BrokerConfig) => Config; //# sourceMappingURL=buildConfig.d.ts.map