@whisklabs/grpc
Version:
gRPC generator and http library for typescript
56 lines • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParseReserved = exports.ParseReservedItem = void 0;
var comment_1 = require("../comment");
var thrower_1 = require("../thrower");
var utils_1 = require("../utils");
var validators_1 = require("../validators");
function ParseReservedItem(tokens) {
var _a = (0, utils_1.check)({
tokens: tokens,
rules: [(0, utils_1.ch)(validators_1.isNumber, { result: true }), (0, utils_1.ch)('to'), (0, utils_1.ch)(['max', validators_1.isNumber], { result: true })],
}), results = _a.results, len = _a.len, errors = _a.errors;
if (errors.length === 0) {
(0, utils_1.cut)(tokens, len);
var from = Number(results[0]);
var to = results[1] === 'max' ? 0x1fffffff : Number(results[1]);
return { from: from, to: to };
}
else {
var inner = (0, utils_1.check)({
tokens: tokens,
rules: [(0, utils_1.ch)([validators_1.isNumber, validators_1.isText], { result: true })],
});
if (inner.errors.length === 0) {
(0, utils_1.cut)(tokens, inner.len);
var res = inner.results[0];
return (0, validators_1.isNumber)(res) ? Number(res) : (0, utils_1.cutStr)(res);
}
else {
throw new thrower_1.Thrower('reserved', errors.concat(inner.errors));
}
}
}
exports.ParseReservedItem = ParseReservedItem;
function ParseReserved(tokens) {
var reserved = [];
while (tokens.length > 0) {
switch ((0, comment_1.next)(tokens)) {
case 'reserved':
case ',':
(0, utils_1.cut)(tokens, 1);
reserved.push(ParseReservedItem(tokens));
break;
case ';':
(0, utils_1.cut)(tokens, 1);
return reserved;
case undefined:
continue;
default:
throw new thrower_1.Thrower('reserved', [["Unexpected token \"".concat(tokens[0], "\""), 0]]);
}
}
throw new thrower_1.Thrower('reserved', [['no close tag ";"', 0]]);
}
exports.ParseReserved = ParseReserved;
//# sourceMappingURL=reserved.js.map