kafkajs
Version:
A modern Apache Kafka client for node.js
38 lines (31 loc) • 863 B
JavaScript
const Decoder = require('../../../decoder')
const { failure, createErrorFromCode, failIfVersionNotSupported } = require('../../../error')
/**
* InitProducerId Response (Version: 0) => throttle_time_ms error_code producer_id producer_epoch
* throttle_time_ms => INT32
* error_code => INT16
* producer_id => INT64
* producer_epoch => INT16
*/
const decode = async rawData => {
const decoder = new Decoder(rawData)
const throttleTime = decoder.readInt32()
const errorCode = decoder.readInt16()
failIfVersionNotSupported(errorCode)
return {
throttleTime,
errorCode,
producerId: decoder.readInt64().toString(),
producerEpoch: decoder.readInt16(),
}
}
const parse = async data => {
if (failure(data.errorCode)) {
throw createErrorFromCode(data.errorCode)
}
return data
}
module.exports = {
decode,
parse,
}