@vpriem/kafka-broker
Version:
Easily compose and manage your kafka resources in one place
36 lines • 1.86 kB
JavaScript
;
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