UNPKG

@cosmology/ast

Version:
50 lines (47 loc) 2.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _class = require("../class"); var _protoParser = require("@cosmology/proto-parser"); var _utils = require("@cosmology/utils"); var _types = require("@cosmology/types"); var _generator = _interopRequireDefault(require("@babel/generator")); var _encoding = require("../../../encoding"); var _testUtils = require("../../../../test-utils"); var store = (0, _testUtils.getTestProtoStore)(); store.traverseAll(); var expectCode = function expectCode(ast) { expect((0, _generator["default"])(ast).code).toMatchSnapshot(); }; var printCode = function printCode(ast) { console.log((0, _generator["default"])(ast).code); }; it('AggregatedLCDClient', function () { var ref1 = store.findProto('cosmos/bank/v1beta1/query.proto'); var ref2 = store.findProto('osmosis/gamm/v1beta1/query.proto'); var res1 = (0, _protoParser.traverse)(store, ref1); var res2 = (0, _protoParser.traverse)(store, ref2); var service1 = (0, _utils.getNestedProto)(res1).Query; var service2 = (0, _utils.getNestedProto)(res2).Query; var context = new _encoding.GenericParseContext(ref1, store, _types.defaultTelescopeOptions); var ast = (0, _class.createAggregatedLCDClient)(context, [service1, service2], 'QueryClient'); expectCode(ast); }); // TODO - use package names to shape the class // e.g. osmosis.gamm.v1beta1.pools() it('options', function () { var packages = ['cosmos.bank.v1beta1', 'osmosis.gamm.v1beta1']; var refs = store.filterProtoWhere(function (ref) { return packages.includes(ref.proto["package"]); }); var services = refs.map(function (ref) { var _proto$Query; var proto = (0, _utils.getNestedProto)(ref.traversed); if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query = proto.Query) === null || _proto$Query === void 0 ? void 0 : _proto$Query.type) !== 'Service') { return; } return proto.Query; }).filter(Boolean); var context = new _encoding.GenericParseContext(refs[0], store, _types.defaultTelescopeOptions); var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient'); expectCode(ast); });