@vpriem/kafka-broker
Version:
Easily compose and manage your kafka resources in one place
31 lines • 1.81 kB
TypeScript
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