@saniot/kafka-header-helper
Version:
A package which help in making consistent kafka header.
43 lines (39 loc) • 1.14 kB
JavaScript
const { serviceDetails } = require("./config");
/**
* header for kafka payload
* @param {String} service_name - Value of service name
* @returns {Object}
*/
exports.kafkaHeader = function (service_name) {
return {
service_name,
host_name: serviceDetails.host_name,
host_ip: serviceDetails.host_ip,
pid: process.pid,
};
};
/**
* It add header in all kafka messages.
* @param {Array} payloads - kafka payload
* @param {*} service_name - service name to add
* @returns {Array}
*/
exports.addHeader = function (payloads, service_name) {
if (!payloads || !Array.isArray(payloads))
throw new Error("Excepting an Array as payloads");
return payloads.map((payload) => {
if (
typeof payload === "object" &&
payload !== null &&
!Array.isArray(payload)
) {
payload.headers = {
service_name,
host_name: serviceDetails.host_name,
host_ip: serviceDetails.host_ip,
pid: process.pid.toString(),
};
}
return payload;
});
};