kafkajs
Version:
A modern Apache Kafka client for node.js
44 lines (37 loc) • 1.13 kB
JavaScript
const Decoder = require('../../../decoder')
const { parse: parseV3 } = require('../v3/response')
/**
* Produce Response (Version: 5) => [responses] throttle_time_ms
* responses => topic [partition_responses]
* topic => STRING
* partition_responses => partition error_code base_offset log_append_time log_start_offset
* partition => INT32
* error_code => INT16
* base_offset => INT64
* log_append_time => INT64
* log_start_offset => INT64
* throttle_time_ms => INT32
*/
const partition = decoder => ({
partition: decoder.readInt32(),
errorCode: decoder.readInt16(),
baseOffset: decoder.readInt64().toString(),
logAppendTime: decoder.readInt64().toString(),
logStartOffset: decoder.readInt64().toString(),
})
const decode = async rawData => {
const decoder = new Decoder(rawData)
const topics = decoder.readArray(decoder => ({
topicName: decoder.readString(),
partitions: decoder.readArray(partition),
}))
const throttleTime = decoder.readInt32()
return {
topics,
throttleTime,
}
}
module.exports = {
decode,
parse: parseV3,
}