UNPKG

kafkajs

Version:

A modern Apache Kafka client for node.js

44 lines (35 loc) 913 B
const Decoder = require('../../../decoder') const { failure, createErrorFromCode, failIfVersionNotSupported } = require('../../../error') /** * ApiVersionResponse => ApiVersions * ErrorCode = INT16 * ApiVersions = [ApiVersion] * ApiVersion = ApiKey MinVersion MaxVersion * ApiKey = INT16 * MinVersion = INT16 * MaxVersion = INT16 */ const apiVersion = decoder => ({ apiKey: decoder.readInt16(), minVersion: decoder.readInt16(), maxVersion: decoder.readInt16(), }) const decode = async rawData => { const decoder = new Decoder(rawData) const errorCode = decoder.readInt16() failIfVersionNotSupported(errorCode) return { errorCode, apiVersions: decoder.readArray(apiVersion), } } const parse = async data => { if (failure(data.errorCode)) { throw createErrorFromCode(data.errorCode) } return data } module.exports = { decode, parse, }