UNPKG

@creditkarma/thrift-server-core

Version:
44 lines 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stripStruct = exports.readThriftObject = void 0; const types_1 = require("../types"); const protocols_1 = require("../protocols"); const transports_1 = require("../transports"); function readThriftObject(data, ThriftCodec, transportType = 'buffered', protocolType = 'binary') { return new Promise((resolve, reject) => { const Transport = (0, transports_1.getTransport)(transportType); const Protocol = (0, protocols_1.getProtocol)(protocolType); const receiver = new Transport(data); const input = new Protocol(receiver); const decoded = ThriftCodec.decode(input); resolve([decoded, receiver.remaining()]); }); } exports.readThriftObject = readThriftObject; function stripStruct(data, transportType = 'buffered', protocolType = 'binary') { try { const Transport = (0, transports_1.getTransport)(transportType); const Protocol = (0, protocols_1.getProtocol)(protocolType); const receiver = new Transport(data); const input = new Protocol(receiver); input.readStructBegin(); while (true) { const ret = input.readFieldBegin(); const fieldType = ret.fieldType; if (fieldType === types_1.TType.STOP) { break; } else { input.skip(fieldType); } input.readFieldEnd(); } input.readStructEnd(); return receiver.remaining(); } catch (err) { return data; } } exports.stripStruct = stripStruct; //# sourceMappingURL=readThriftObject.js.map