kafka-pub-sub
Version:
Enterprise-grade Kafka publish/subscribe library for Node.js — producer pool, batch sending, DLQ, SSL/SASL, multi-broker, and real-world industry examples.
24 lines (18 loc) • 623 B
JavaScript
const Joi = require('joi');
/**
* Validates Kafka message headers.
*
* @param {Object} headers - The headers object to validate.
* @throws {Error} When headers is missing or not a plain object.
*/
const validateHeaders = (headers) => {
if (headers === undefined || headers === null) {
throw new Error('Invalid headers: No headers found');
}
const schema = Joi.object().keys().unknown();
const { error } = schema.prefs({ errors: { label: 'key' } }).validate(headers);
if (error) {
throw new Error('Invalid headers: The type of headers should be object');
}
};
module.exports = validateHeaders;