UNPKG

@vpriem/kafka-broker

Version:

Easily compose and manage your kafka resources in one place

36 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildContainerConfig = void 0; const buildConfig_1 = require("./buildConfig"); const nsKafka = (brokers, clientId, defaults) => Object.fromEntries(Object.entries(brokers).map(([name, { config }]) => [ name, (0, buildConfig_1.buildKafka)({ ...defaults, ...config }, clientId), ])); const nsProducers = (brokers, defaults) => Object.fromEntries(Object.entries(brokers) .map(([brokerName, { producers }]) => Object.entries((0, buildConfig_1.buildProducers)(producers || {}, brokerName, defaults)).map(([name, config]) => [ `${brokerName}/${name}`, config, ])) .flat()); const nsPublications = (brokers) => Object.fromEntries(Object.entries(brokers) .map(([brokerName, { publications }]) => Object.entries((0, buildConfig_1.buildPublications)(publications || {}, `${brokerName}/default`)).map(([name, config]) => [ `${brokerName}/${name}`, config, ])) .flat()); const nsSubscriptions = (brokers, groupPrefix, defaults) => Object.fromEntries(Object.entries(brokers) .map(([brokerName, { subscriptions }]) => Object.entries((0, buildConfig_1.buildSubscriptions)(subscriptions || {}, `${groupPrefix}.${brokerName}`, brokerName, defaults)).map(([name, config]) => [ `${brokerName}/${name}`, config, ])) .flat()); const buildContainerConfig = ({ namespace, defaults, schemaRegistry, brokers, }) => ({ namespace, schemaRegistry: (0, buildConfig_1.buildSchemaRegistry)(schemaRegistry), kafka: nsKafka(brokers, namespace, defaults?.config), producers: nsProducers(brokers, defaults?.producer), publications: nsPublications(brokers), subscriptions: nsSubscriptions(brokers, namespace, defaults?.consumer), }); exports.buildContainerConfig = buildContainerConfig; //# sourceMappingURL=buildContainerConfig.js.map