UNPKG

@whisklabs/grpc

Version:

gRPC generator and http library for typescript

48 lines 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParseService = 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"); var rpc_1 = require("./rpc"); function ParseService(tokens) { var _a = (0, utils_1.check)({ type: 'service', tokens: tokens, rules: [(0, utils_1.ch)('service'), (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 service = { name: results[0], methods: [], options: {}, }; (0, comment_1.setComment)(service); while (tokens.length > 0) { if (tokens[0] === '}') { tokens.shift(); (0, utils_1.semicolon)(tokens); (0, comment_1.writeComment)(service); return service; } switch ((0, comment_1.next)(tokens)) { case 'option': { var _b = (0, options_1.ParseOptions)(tokens), field = _b.field, value = _b.value; (0, utils_1.insertOption)(service.options, field, value); break; } case 'rpc': service.methods.push((0, rpc_1.ParseRPC)(tokens)); break; case undefined: continue; default: throw new thrower_1.Thrower('rpc', [["Unexpected token in service: ".concat(tokens[0]), 0]]); } } throw new thrower_1.Thrower('rpc', [['no close tag "}"', 0]]); } exports.ParseService = ParseService; //# sourceMappingURL=service.js.map