@cosmology/ast
Version:
Cosmos TypeScript AST generation
122 lines (121 loc) • 4.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _class = require("../class");
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 _deepmerge = _interopRequireDefault(require("deepmerge"));
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('uses fromSDKJSON when useSDKTypes && prototypes.methods.fromSDKJSON', 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 options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, {
useSDKTypes: true,
prototypes: {
enabled: true,
methods: {
fromSDKJSON: true
}
}
});
var context = new _encoding.GenericParseContext(refs[0], store, options);
var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient');
expectCode(ast);
});
it('uses fromJSON when !useSDKTypes && prototypes.methods.fromJSON', 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$Query2;
var proto = (0, _utils.getNestedProto)(ref.traversed);
if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query2 = proto.Query) === null || _proto$Query2 === void 0 ? void 0 : _proto$Query2.type) !== 'Service') {
return;
}
return proto.Query;
}).filter(Boolean);
var options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, {
useSDKTypes: false,
prototypes: {
enabled: true,
methods: {
fromJSON: true
}
}
});
var context = new _encoding.GenericParseContext(refs[0], store, options);
var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient');
expectCode(ast);
});
it('returns any when useSDKTypes && !prototypes.methods.fromSDKJSON', 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$Query3;
var proto = (0, _utils.getNestedProto)(ref.traversed);
if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query3 = proto.Query) === null || _proto$Query3 === void 0 ? void 0 : _proto$Query3.type) !== 'Service') {
return;
}
return proto.Query;
}).filter(Boolean);
var options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, {
useSDKTypes: true,
prototypes: {
enabled: true,
methods: {
fromSDKJSON: false
}
}
});
var context = new _encoding.GenericParseContext(refs[0], store, options);
var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient');
expectCode(ast);
});
it('returns any when !useSDKTypes && !prototypes.methods.fromJSON', 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$Query4;
var proto = (0, _utils.getNestedProto)(ref.traversed);
if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query4 = proto.Query) === null || _proto$Query4 === void 0 ? void 0 : _proto$Query4.type) !== 'Service') {
return;
}
return proto.Query;
}).filter(Boolean);
var options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, {
useSDKTypes: false,
prototypes: {
enabled: true,
methods: {
fromJSON: false
}
}
});
var context = new _encoding.GenericParseContext(refs[0], store, options);
var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient');
expectCode(ast);
});