UNPKG

hiot-kafka

Version:

hiot-app middleware to bootstrap kafka

40 lines (33 loc) 991 B
"use strict"; exports.parse = (consumer, payload, topic, partition, logger) => { var message = payload.message; var value; var reject = commit(consumer, topic, partition, payload.offset, "rejected"); var ack = commit(consumer, topic, partition, payload.offset, "acknowledge"); if (!message || !message.value) { logger.warn("rejecting message due to empty body"); return reject(); } try { var json = message.value.toString("utf8"); value = JSON.parse(json); } catch (err) { logger.error({ json }, "rejecting message due to invalid json"); return reject(); } return Promise.resolve({ topic: topic, partition: partition, offset: payload.offset, message: { key: message.key, value: value, }, ack: ack, reject: reject, }); }; function commit(consumer, topic, partition, offset, reason) { var meta = { topic, partition, offset, metadata: reason }; return consumer.commitOffset.bind(consumer, meta); }