UNPKG

@whisklabs/grpc

Version:

gRPC generator and http library for typescript

225 lines 6.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.writeMap = exports.writeMapRaw = exports.writePacked = exports.writeVarint = exports.writeTag = exports.BufWrite = void 0; var constant_1 = require("./constant"); var ieee754_1 = require("./ieee754"); var utf8_1 = require("./utf8"); var BufWrite = /** @class */ (function () { function BufWrite() { // buf = new Uint8Array(); this.buf = []; } // len = 0; BufWrite.prototype.push = function (item) { // if (this.buf.length < this.len + 2) { // const b = new Uint8Array(this.len + 10); // b.set(this.buf, 0); // this.buf = b; // } // this.buf[this.len++] = item; this.buf.push(item); }; BufWrite.prototype.concat = function (buf) { // const b = new Uint8Array(this.buf.length + buf.length + 10); // b.set(this.buf, 0); // b.set(buf, this.len); // this.buf = b; // this.len += buf.length; for (var i = 0, l = buf.length; i < l; i++) { this.buf.push(buf[i]); } }; BufWrite.prototype.get = function () { // return this.buf.slice(0, this.len); // -> dataview var u = new Uint8Array(this.buf.length); u.set(this.buf); return u; }; return BufWrite; }()); exports.BufWrite = BufWrite; var writeTag = function (buf, tag, type) { (0, exports.writeVarint)(buf, (tag << 3) | type); }; exports.writeTag = writeTag; var writeVarint = function (buf, val, s) { if (s === void 0) { s = false; } if (val > 0xfffffff || val < 0 || s) { return writeBigVarint(buf, val, s); } while (val > 127) { buf.push((val & 127) | 128); val >>>= 7; } buf.push(val); }; exports.writeVarint = writeVarint; var writeBigVarint = function (buf, val, s) { var low; var high; var sign = val < 0; if (sign) { val = -val; } low = val >>> 0; high = ((val - low) / constant_1.SHIFT_LEFT_32) >>> 0; if (sign) { high = ~high >>> 0; low = ~low >>> 0; if (++low > 4294967295) { low = 0; if (++high > 4294967295) { high = 0; } } } if (s) { var mask = high >> 31; high = (((high << 1) | (low >>> 31)) ^ mask) >>> 0; low = ((low << 1) ^ mask) >>> 0; } while (high) { buf.push((low & 127) | 128); low = ((low >>> 7) | (high << 25)) >>> 0; high >>>= 7; } while (low > 127) { buf.push((low & 127) | 128); low = low >>> 7; } buf.push(low); }; function writeInt32(buf, val) { buf.push(val); buf.push(val >>> 8); buf.push(val >>> 16); buf.push(val >>> 24); } var writeFixed32 = writeInt32; var writeSFixed32 = writeInt32; var writeFixed64 = function (buf, val) { writeInt32(buf, val & -1); writeInt32(buf, Math.floor(val * constant_1.SHIFT_RIGHT_32)); }; var writeSFixed64 = writeFixed64; var writeSVarint = function (buf, val) { (0, exports.writeVarint)(buf, val, true); }; var writeBoolean = function (buf, val) { (0, exports.writeVarint)(buf, Number(Boolean(val))); }; var writeString = function (buf, str) { var bufStr = (0, utf8_1.writeUtf8)(String(str)); (0, exports.writeVarint)(buf, bufStr.length); buf.concat(bufStr); }; var writeFloat = function (buf, val) { (0, ieee754_1.write)(buf.buf, val, buf.buf.length, true, 23, 4); }; var writeDouble = function (buf, val) { (0, ieee754_1.write)(buf.buf, val, buf.buf.length, true, 52, 8); }; var writeBytes = function (buf, buffer) { var len = buffer.length; (0, exports.writeVarint)(buf, len); // eslint-disable-next-line @typescript-eslint/prefer-for-of for (var i = 0; i < buffer.length; i++) { buf.push(buffer[i]); } }; // eslint-disable-next-line @typescript-eslint/no-explicit-any var writePacked = function (fn, buf, tag, arr) { if (arr.length) { (0, exports.writeTag)(buf, tag, constant_1.Bytes); var bufRaw = new BufWrite(); for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) { var ar = arr_1[_i]; fn(bufRaw, ar); } (0, exports.writeVarint)(buf, bufRaw.buf.length); buf.concat(bufRaw.buf); } }; exports.writePacked = writePacked; var writeBytesField = function (buf, tag, buffer) { (0, exports.writeTag)(buf, tag, constant_1.Bytes); writeBytes(buf, buffer); }; var writeFixed32Field = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Fixed32); writeFixed32(buf, val); }; var writeSFixed32Field = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Fixed32); writeSFixed32(buf, val); }; var writeFixed64Field = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Fixed64); writeFixed64(buf, val); }; var writeSFixed64Field = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Fixed64); writeSFixed64(buf, val); }; var writeVarintField = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Varint); (0, exports.writeVarint)(buf, val); }; var writeSVarintField = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Varint); writeSVarint(buf, val); }; var writeStringField = function (buf, tag, str) { (0, exports.writeTag)(buf, tag, constant_1.Bytes); writeString(buf, str); }; var writeFloatField = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Fixed32); writeFloat(buf, val); }; var writeDoubleField = function (buf, tag, val) { (0, exports.writeTag)(buf, tag, constant_1.Fixed64); writeDouble(buf, val); }; var writeBooleanField = function (buf, tag, val) { writeVarintField(buf, tag, Number(val)); }; exports.writeMapRaw = { // eslint-disable-next-line id-blacklist string: writeString, float: writeFloat, double: writeDouble, bool: writeBoolean, enum: exports.writeVarint, uint32: exports.writeVarint, uint64: exports.writeVarint, int32: exports.writeVarint, int64: exports.writeVarint, sint32: writeSVarint, sint64: writeSVarint, fixed32: writeFixed32, fixed64: writeFixed64, sfixed32: writeSFixed32, sfixed64: writeSFixed64, bytes: writeBytes, }; exports.writeMap = { // eslint-disable-next-line id-blacklist string: writeStringField, float: writeFloatField, double: writeDoubleField, bool: writeBooleanField, enum: writeVarintField, uint32: writeVarintField, uint64: writeVarintField, int32: writeVarintField, int64: writeVarintField, sint32: writeSVarintField, sint64: writeSVarintField, fixed32: writeFixed32Field, fixed64: writeFixed64Field, sfixed32: writeSFixed32Field, sfixed64: writeSFixed64Field, bytes: writeBytesField, }; //# sourceMappingURL=write.js.map