@creditkarma/thrift-server-core
Version:
Thrift core library in TypeScript
44 lines • 1.68 kB
JavaScript
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
;