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.
74 lines (71 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.INIT_PRODUCER_ID = void 0;
const api_1 = require("../utils/api");
const error_1 = require("../utils/error");
/*
InitProducerId Request (Version: 0) => transactional_id transaction_timeout_ms
transactional_id => NULLABLE_STRING
transaction_timeout_ms => INT32
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 INIT_PRODUCER_ID_V0 = (0, api_1.createApi)({
apiKey: 22,
apiVersion: 0,
requestHeaderVersion: 1,
responseHeaderVersion: 0,
request: (encoder, data) => encoder.writeString(data.transactionalId).writeInt32(data.transactionTimeoutMs),
response: (decoder) => {
const result = {
throttleTimeMs: decoder.readInt32(),
errorCode: decoder.readInt16(),
producerId: decoder.readInt64(),
producerEpoch: decoder.readInt16(),
tags: {},
};
if (result.errorCode)
throw new error_1.KafkaTSApiError(result.errorCode, null, result);
return result;
},
});
/*
InitProducerId Request (Version: 4) => transactional_id transaction_timeout_ms producer_id producer_epoch _tagged_fields
transactional_id => COMPACT_NULLABLE_STRING
transaction_timeout_ms => INT32
producer_id => INT64
producer_epoch => INT16
InitProducerId Response (Version: 4) => throttle_time_ms error_code producer_id producer_epoch _tagged_fields
throttle_time_ms => INT32
error_code => INT16
producer_id => INT64
producer_epoch => INT16
*/
exports.INIT_PRODUCER_ID = (0, api_1.createApi)({
apiKey: 22,
apiVersion: 4,
fallback: INIT_PRODUCER_ID_V0,
requestHeaderVersion: 2,
responseHeaderVersion: 1,
request: (encoder, data) => encoder
.writeCompactString(data.transactionalId)
.writeInt32(data.transactionTimeoutMs)
.writeInt64(data.producerId)
.writeInt16(data.producerEpoch)
.writeTagBuffer(),
response: (decoder) => {
const result = {
throttleTimeMs: decoder.readInt32(),
errorCode: decoder.readInt16(),
producerId: decoder.readInt64(),
producerEpoch: decoder.readInt16(),
tags: decoder.readTagBuffer(),
};
if (result.errorCode)
throw new error_1.KafkaTSApiError(result.errorCode, null, result);
return result;
},
});