UNPKG

kafka-ts

Version:

**KafkaTS** is a Apache Kafka client library for Node.js. It provides both a low-level API for communicating directly with the Apache Kafka cluster and high-level APIs for publishing and subscribing to Kafka topics.

99 lines (96 loc) 3.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FIND_COORDINATOR = exports.KEY_TYPE = void 0; const api_1 = require("../utils/api"); const error_1 = require("../utils/error"); exports.KEY_TYPE = { GROUP: 0, TRANSACTION: 1, }; /* FindCoordinator Request (Version: 3) => key key_type _tagged_fields key => COMPACT_STRING key_type => INT8 FindCoordinator Response (Version: 3) => throttle_time_ms error_code error_message node_id host port _tagged_fields throttle_time_ms => INT32 error_code => INT16 error_message => COMPACT_NULLABLE_STRING node_id => INT32 host => COMPACT_STRING port => INT32 */ const FIND_COORDINATOR_V3 = (0, api_1.createApi)({ apiKey: 10, apiVersion: 3, requestHeaderVersion: 2, responseHeaderVersion: 1, request: (encoder, data) => encoder .writeCompactString(data.keys[0]) .writeInt8(data.keyType) .writeTagBuffer(), response: (decoder) => { const result = { throttleTimeMs: decoder.readInt32(), coordinators: [ { key: '', errorCode: decoder.readInt16(), errorMessage: decoder.readCompactString(), nodeId: decoder.readInt32(), host: decoder.readCompactString(), port: decoder.readInt32(), tags: {}, }, ], tags: decoder.readTagBuffer(), }; if (result.coordinators[0].errorCode) throw new error_1.KafkaTSApiError(result.coordinators[0].errorCode, result.coordinators[0].errorMessage, result); return result; }, }); /* FindCoordinator Request (Version: 4) => key_type [coordinator_keys] _tagged_fields key_type => INT8 coordinator_keys => COMPACT_STRING FindCoordinator Response (Version: 4) => throttle_time_ms [coordinators] _tagged_fields throttle_time_ms => INT32 coordinators => key node_id host port error_code error_message _tagged_fields key => COMPACT_STRING node_id => INT32 host => COMPACT_STRING port => INT32 error_code => INT16 error_message => COMPACT_NULLABLE_STRING */ exports.FIND_COORDINATOR = (0, api_1.createApi)({ apiKey: 10, apiVersion: 4, fallback: FIND_COORDINATOR_V3, requestHeaderVersion: 2, responseHeaderVersion: 1, request: (encoder, data) => encoder .writeInt8(data.keyType) .writeCompactArray(data.keys, (encoder, key) => encoder.writeCompactString(key)) .writeTagBuffer(), response: (decoder) => { const result = { throttleTimeMs: decoder.readInt32(), coordinators: decoder.readCompactArray((decoder) => ({ key: decoder.readCompactString(), nodeId: decoder.readInt32(), host: decoder.readCompactString(), port: decoder.readInt32(), errorCode: decoder.readInt16(), errorMessage: decoder.readCompactString(), tags: decoder.readTagBuffer(), })), tags: decoder.readTagBuffer(), }; result.coordinators.forEach((coordinator) => { if (coordinator.errorCode) throw new error_1.KafkaTSApiError(coordinator.errorCode, coordinator.errorMessage, result); }); return result; }, });