@awesomeniko/kafka-trail
Version:
A Node.js library for managing message queue with Kafka
26 lines • 788 B
JavaScript
import { v4 } from "uuid";
import { ktEncode, ktDecode } from "../libs/helpers/default-data-parser.js";
export const KTTopic = (settings, validatorFn) => {
const fn = (payload, { messageKey, meta }) => {
let payloadToSend;
if (validatorFn) {
payloadToSend = validatorFn.encode(payload);
}
else {
payloadToSend = ktEncode(payload);
}
return {
topicName: settings.topic,
message: payloadToSend,
messageKey: messageKey,
meta: {
...meta,
traceId: meta?.traceId ?? v4(),
},
};
};
fn.topicSettings = settings;
fn.decode = validatorFn?.decode ?? ktDecode;
return fn;
};
//# sourceMappingURL=topic.js.map