UNPKG

@whisklabs/grpc

Version:

gRPC generator and http library for typescript

68 lines 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParseRPC = void 0; var comment_1 = require("../comment"); var thrower_1 = require("../thrower"); var utils_1 = require("../utils"); var validators_1 = require("../validators"); var options_1 = require("./options"); function ParseRPC(tokens) { var _a = (0, utils_1.check)({ type: 'rpc', tokens: tokens, rules: [ (0, utils_1.ch)('rpc'), (0, utils_1.ch)(validators_1.isText, { result: true }), (0, utils_1.ch)('('), (0, utils_1.ch)('stream', { ignore: true, result: true }), (0, utils_1.ch)(validators_1.isText, { result: true }), (0, utils_1.ch)(')'), (0, utils_1.ch)('returns'), (0, utils_1.ch)('('), (0, utils_1.ch)('stream', { ignore: true, result: true }), (0, utils_1.ch)(validators_1.isText, { result: true }), (0, utils_1.ch)(')'), ], }), results = _a.results, len = _a.len; (0, utils_1.cut)(tokens, len); var rpc = { name: results[0], inputType: results[2], outputType: results[4], clientStreaming: results[1] === 'stream', serverStreaming: results[3] === 'stream', options: {}, }; (0, comment_1.setComment)(rpc); if (tokens[0] === ';') { tokens.shift(); return rpc; } (0, utils_1.check)({ type: 'rpc', tokens: [tokens[0], tokens[tokens.indexOf('}')]], rules: [(0, utils_1.ch)('{'), (0, utils_1.ch)('}')], }); tokens.shift(); while (tokens.length > 0) { switch ((0, comment_1.next)(tokens)) { case '}': (0, utils_1.cut)(tokens, 1); (0, utils_1.semicolon)(tokens); (0, comment_1.writeComment)(rpc); return rpc; case 'option': { var _b = (0, options_1.ParseOptions)(tokens), field = _b.field, value = _b.value; (0, utils_1.insertOption)(rpc.options, field, value); break; } case undefined: continue; default: throw new thrower_1.Thrower('rpc', [["Unexpected token \"".concat(tokens[0], "\""), 0]]); } } throw new thrower_1.Thrower('rpc', [['no close tag "}"', 0]]); } exports.ParseRPC = ParseRPC; //# sourceMappingURL=rpc.js.map