UNPKG

@awesomeniko/kafka-trail

Version:

A Node.js library for managing message queue with Kafka

45 lines 1.5 kB
import { ktDecode, ktEncode } from "../libs/helpers/default-data-parser.js"; import { DLQKTTopic } from "./topic.js"; const createTopicBatchEvent = (settings, validatorFn) => { const validatePayload = (payload) => { validatorFn?.validate?.(payload); return true; }; const fn = (payload) => { const topicBatchMessages = []; for (const data of payload) { validatePayload(data.value); const payloadToSend = validatorFn ? validatorFn.encode(data.value) : ktEncode(data.value); topicBatchMessages.push({ value: payloadToSend, key: data.key, headers: data.headers || {}, }); } return { topicName: settings.topic, messages: topicBatchMessages, }; }; fn.topicSettings = settings; fn.decode = ((data) => { const decoded = (validatorFn?.decode ?? (ktDecode))(data); validatePayload(decoded); return decoded; }); return fn; }; export const KTTopicBatch = (_settings) => { throw new Error("Deprecated. use CreateKTTopicBatch(...)"); }; export const CreateKTTopicBatch = (settings, validatorFn) => { const BaseTopic = createTopicBatchEvent(settings, validatorFn); let DLQTopic = null; if (settings.createDLQ) { DLQTopic = DLQKTTopic(settings); } return { BaseTopic, DLQTopic }; }; //# sourceMappingURL=topic-batch.js.map