wasm-ast-types 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/main/{wasm.js → client/client.js} +54 -40
- package/main/client/index.js +18 -0
- package/main/client/test/ts-client.arrays.spec.js +25 -0
- package/main/client/test/ts-client.cw-named-groups.test.js +25 -0
- package/main/client/test/ts-client.cw-proposal-single.test.js +30 -0
- package/main/client/test/ts-client.empty-enums.spec.js +19 -0
- package/main/client/test/ts-client.sg721.spec.js +25 -0
- package/main/client/test/ts-client.spec.js +106 -0
- package/main/client/test/ts-client.vectis.spec.js +56 -0
- package/main/context/context.js +48 -0
- package/main/context/index.js +18 -0
- package/main/{messages.js → from-partial/from-partial.js} +17 -60
- package/main/from-partial/from-partial.spec.js +20 -0
- package/main/from-partial/index.js +18 -0
- package/main/index.js +34 -8
- package/main/react-query/index.js +18 -0
- package/main/{react-query.js → react-query/react-query.js} +39 -64
- package/main/{react-query.spec.js → react-query/react-query.spec.js} +33 -43
- package/main/recoil/index.js +18 -0
- package/main/{recoil.js → recoil/recoil.js} +7 -26
- package/main/{recoil.spec.js → recoil/recoil.spec.js} +9 -14
- package/main/utils/babel.spec.js +7 -15
- package/main/utils/index.js +13 -0
- package/main/utils/types.js +34 -32
- package/module/{wasm.js → client/client.js} +43 -33
- package/module/client/index.js +1 -0
- package/module/client/test/ts-client.arrays.spec.js +17 -0
- package/module/client/test/ts-client.cw-named-groups.test.js +17 -0
- package/module/client/test/ts-client.cw-proposal-single.test.js +21 -0
- package/module/client/test/ts-client.empty-enums.spec.js +11 -0
- package/module/client/test/ts-client.sg721.spec.js +17 -0
- package/module/client/test/ts-client.spec.js +85 -0
- package/module/client/test/ts-client.vectis.spec.js +44 -0
- package/module/context/context.js +25 -0
- package/module/context/index.js +1 -0
- package/module/{messages.js → from-partial/from-partial.js} +16 -57
- package/module/from-partial/from-partial.spec.js +12 -0
- package/module/from-partial/index.js +1 -0
- package/module/index.js +5 -3
- package/module/react-query/index.js +1 -0
- package/module/{react-query.js → react-query/react-query.js} +30 -49
- package/module/react-query/react-query.spec.js +53 -0
- package/module/recoil/index.js +1 -0
- package/module/{recoil.js → recoil/recoil.js} +6 -20
- package/module/recoil/recoil.spec.js +15 -0
- package/module/utils/babel.spec.js +1 -10
- package/module/utils/index.js +2 -1
- package/module/utils/types.js +32 -30
- package/package.json +4 -3
- package/types/src/client/client.d.ts +17 -0
- package/types/src/client/index.d.ts +1 -0
- package/types/src/client/test/ts-client.cw-named-groups.test.d.ts +1 -0
- package/types/src/client/test/ts-client.cw-proposal-single.test.d.ts +1 -0
- package/types/src/context/context.d.ts +20 -0
- package/types/src/context/index.d.ts +1 -0
- package/types/src/from-partial/from-partial.d.ts +4 -0
- package/types/src/from-partial/index.d.ts +1 -0
- package/types/src/index.d.ts +7 -0
- package/types/src/react-query/index.d.ts +1 -0
- package/types/src/react-query/react-query.d.ts +81 -0
- package/types/src/recoil/index.d.ts +1 -0
- package/types/{recoil.d.ts → src/recoil/recoil.d.ts} +5 -5
- package/types/{types.d.ts → src/types.d.ts} +17 -0
- package/types/{utils.d.ts → src/utils/babel.d.ts} +21 -1
- package/types/src/utils/index.d.ts +2 -0
- package/types/src/utils/types.d.ts +18 -0
- package/types/test-utils/index.d.ts +2 -0
- package/main/messages.spec.js +0 -24
- package/main/wasm.arrays.spec.js +0 -30
- package/main/wasm.cw-named-groups.test.js +0 -30
- package/main/wasm.cw-proposal-single.test.js +0 -32
- package/main/wasm.empty-enums.spec.js +0 -24
- package/main/wasm.sg721.spec.js +0 -30
- package/main/wasm.spec.js +0 -95
- package/main/wasm.vectis.spec.js +0 -53
- package/module/messages.spec.js +0 -18
- package/module/react-query.spec.js +0 -65
- package/module/recoil.spec.js +0 -22
- package/module/wasm.arrays.spec.js +0 -24
- package/module/wasm.cw-named-groups.test.js +0 -24
- package/module/wasm.cw-proposal-single.test.js +0 -25
- package/module/wasm.empty-enums.spec.js +0 -18
- package/module/wasm.sg721.spec.js +0 -24
- package/module/wasm.spec.js +0 -76
- package/module/wasm.vectis.spec.js +0 -43
- package/types/amino/amino-interfaces.d.ts +0 -6
- package/types/amino/from-amino.d.ts +0 -13
- package/types/amino/index.d.ts +0 -3
- package/types/amino/to-amino.d.ts +0 -11
- package/types/index.d.ts +0 -5
- package/types/messages.d.ts +0 -4
- package/types/react-query.d.ts +0 -70
- package/types/wasm.d.ts +0 -24
@@ -5,51 +5,32 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
6
6
|
value: true
|
7
7
|
});
|
8
|
-
exports.
|
8
|
+
exports.createRecoilSelectors = exports.createRecoilSelector = exports.createRecoilQueryClientType = exports.createRecoilQueryClient = void 0;
|
9
9
|
|
10
10
|
var t = _interopRequireWildcard(require("@babel/types"));
|
11
11
|
|
12
12
|
var _case = require("case");
|
13
13
|
|
14
|
-
var _utils = require("
|
14
|
+
var _utils = require("../utils");
|
15
15
|
|
16
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
17
|
|
18
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
19
19
|
|
20
|
-
var
|
21
|
-
var _jsonschema$propertie;
|
22
|
-
|
23
|
-
var underscoreName = Object.keys(jsonschema.properties)[0];
|
24
|
-
var methodName = (0, _case.camel)(underscoreName);
|
25
|
-
var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
|
26
|
-
var properties = (_jsonschema$propertie = jsonschema.properties[underscoreName].properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {};
|
27
|
-
|
28
|
-
if (Object.keys(properties).length > 0) {} else {}
|
29
|
-
};
|
30
|
-
|
31
|
-
exports.createWasmRecoilMethod = createWasmRecoilMethod;
|
32
|
-
|
33
|
-
var createRecoilSelector = function createRecoilSelector(keyPrefix, QueryClient, methodName) {
|
34
|
-
// const propertyNames = getMessageProperties(queryMsg)
|
35
|
-
// .map(method => Object.keys(method.properties)?.[0])
|
36
|
-
// .filter(Boolean);
|
37
|
-
// const methods = getMessageProperties(queryMsg)
|
38
|
-
// .map(schema => createWasmRecoilMethod(schema))
|
20
|
+
var createRecoilSelector = function createRecoilSelector(context, keyPrefix, QueryClient, methodName) {
|
39
21
|
var selectorName = (0, _case.camel)("".concat(methodName, "Selector"));
|
40
22
|
var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
|
41
23
|
var getterKey = (0, _case.camel)("".concat(keyPrefix).concat((0, _case.pascal)(methodName)));
|
42
|
-
return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(selectorName), (0, _utils.callExpression)(t.identifier('selectorFamily'), [t.objectExpression([t.objectProperty(t.identifier('key'), t.stringLiteral(getterKey)), t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('params'), t.identifier('params'), false, true), t.restElement(t.identifier('queryClientParams'))])], t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('get'), t.identifier('get'), false, true)])], t.blockStatement([t.variableDeclaration('const', [t.variableDeclarator(t.identifier('client'), t.callExpression(t.identifier('get'), [t.callExpression(t.identifier('queryClient'), [t.identifier('queryClientParams')])]))]), t.returnStatement(t.awaitExpression(t.callExpression(t.memberExpression(t.identifier('client'), t.identifier(methodName)), [
|
43
|
-
t.spreadElement(t.identifier('params'))])))]), true)))])], t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(responseType)), t.tsIntersectionType([t.tsTypeReference(t.identifier('QueryClientParams')), t.tsTypeLiteral([t.tsPropertySignature(t.identifier('params'), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Parameters'), t.tsTypeParameterInstantiation([t.tsIndexedAccessType(t.tsTypeReference(t.identifier(QueryClient)), t.tsLiteralType(t.stringLiteral(methodName)))]))))])])])))]));
|
24
|
+
return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(selectorName), (0, _utils.callExpression)(t.identifier('selectorFamily'), [t.objectExpression([t.objectProperty(t.identifier('key'), t.stringLiteral(getterKey)), t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('params'), t.identifier('params'), false, true), t.restElement(t.identifier('queryClientParams'))])], t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('get'), t.identifier('get'), false, true)])], t.blockStatement([t.variableDeclaration('const', [t.variableDeclarator(t.identifier('client'), t.callExpression(t.identifier('get'), [t.callExpression(t.identifier('queryClient'), [t.identifier('queryClientParams')])]))]), t.returnStatement(t.awaitExpression(t.callExpression(t.memberExpression(t.identifier('client'), t.identifier(methodName)), [t.spreadElement(t.identifier('params'))])))]), true)))])], t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(responseType)), t.tsIntersectionType([t.tsTypeReference(t.identifier('QueryClientParams')), t.tsTypeLiteral([t.tsPropertySignature(t.identifier('params'), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Parameters'), t.tsTypeParameterInstantiation([t.tsIndexedAccessType(t.tsTypeReference(t.identifier(QueryClient)), t.tsLiteralType(t.stringLiteral(methodName)))]))))])])])))]));
|
44
25
|
};
|
45
26
|
|
46
27
|
exports.createRecoilSelector = createRecoilSelector;
|
47
28
|
|
48
|
-
var createRecoilSelectors = function createRecoilSelectors(keyPrefix, QueryClient, queryMsg) {
|
29
|
+
var createRecoilSelectors = function createRecoilSelectors(context, keyPrefix, QueryClient, queryMsg) {
|
49
30
|
return (0, _utils.getMessageProperties)(queryMsg).map(function (schema) {
|
50
31
|
var underscoreName = Object.keys(schema.properties)[0];
|
51
32
|
var methodName = (0, _case.camel)(underscoreName);
|
52
|
-
return createRecoilSelector(keyPrefix, QueryClient, methodName);
|
33
|
+
return createRecoilSelector(context, keyPrefix, QueryClient, methodName);
|
53
34
|
});
|
54
35
|
};
|
55
36
|
|
@@ -84,7 +65,7 @@ var createRecoilQueryClientType = function createRecoilQueryClientType() {
|
|
84
65
|
|
85
66
|
exports.createRecoilQueryClientType = createRecoilQueryClientType;
|
86
67
|
|
87
|
-
var createRecoilQueryClient = function createRecoilQueryClient(keyPrefix, QueryClient) {
|
68
|
+
var createRecoilQueryClient = function createRecoilQueryClient(context, keyPrefix, QueryClient) {
|
88
69
|
var getterKey = (0, _case.camel)("".concat(keyPrefix, 'QueryClient'));
|
89
70
|
return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier('queryClient'), (0, _utils.callExpression)(t.identifier('selectorFamily'), [t.objectExpression([t.objectProperty(t.identifier('key'), t.stringLiteral(getterKey)), t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('contractAddress'), t.identifier('contractAddress'), false, true)])], t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('get'), t.identifier('get'), false, true)])], t.blockStatement([t.variableDeclaration('const', [t.variableDeclarator(t.identifier('client'), t.callExpression(t.identifier('get'), [t.identifier('cosmWasmClient')]))]), t.returnStatement(t.newExpression(t.identifier(QueryClient), [t.identifier('client'), t.identifier('contractAddress')]))]), false)))])], t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(QueryClient)), t.tsTypeReference(t.identifier('QueryClientParams'))])))]));
|
90
71
|
};
|
@@ -4,32 +4,27 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
4
4
|
|
5
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
6
6
|
|
7
|
-
var _generator = _interopRequireDefault(require("@babel/generator"));
|
8
|
-
|
9
7
|
var t = _interopRequireWildcard(require("@babel/types"));
|
10
8
|
|
11
|
-
var _query_msg = _interopRequireDefault(require("
|
9
|
+
var _query_msg = _interopRequireDefault(require("../../../../__fixtures__/basic/query_msg.json"));
|
12
10
|
|
13
11
|
var _recoil = require("./recoil");
|
14
12
|
|
15
|
-
|
13
|
+
var _context = require("../context");
|
16
14
|
|
17
|
-
|
15
|
+
var _testUtils = require("../../test-utils");
|
18
16
|
|
19
|
-
var
|
20
|
-
expect((0, _generator["default"])(ast).code).toMatchSnapshot();
|
21
|
-
};
|
17
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
22
18
|
|
23
|
-
var
|
24
|
-
console.log((0, _generator["default"])(ast).code);
|
25
|
-
};
|
19
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
26
20
|
|
21
|
+
var ctx = new _context.RenderContext(_query_msg["default"]);
|
27
22
|
it('selector', function () {
|
28
|
-
expectCode((0, _recoil.createRecoilSelector)('SG721', 'SG721QueryClient', 'governanceModules'));
|
23
|
+
(0, _testUtils.expectCode)((0, _recoil.createRecoilSelector)(ctx, 'SG721', 'SG721QueryClient', 'governanceModules'));
|
29
24
|
});
|
30
25
|
it('selectors', function () {
|
31
|
-
expectCode(t.program((0, _recoil.createRecoilSelectors)('SG721', 'SG721QueryClient', _query_msg["default"])));
|
26
|
+
(0, _testUtils.expectCode)(t.program((0, _recoil.createRecoilSelectors)(ctx, 'SG721', 'SG721QueryClient', _query_msg["default"])));
|
32
27
|
});
|
33
28
|
it('client', function () {
|
34
|
-
expectCode((0, _recoil.createRecoilQueryClient)('SG721', 'SG721QueryClient'));
|
29
|
+
(0, _testUtils.expectCode)((0, _recoil.createRecoilQueryClient)(ctx, 'SG721', 'SG721QueryClient'));
|
35
30
|
});
|
package/main/utils/babel.spec.js
CHANGED
@@ -10,28 +10,20 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
10
10
|
|
11
11
|
var _babel = require("./babel");
|
12
12
|
|
13
|
-
var _generator = _interopRequireDefault(require("@babel/generator"));
|
14
|
-
|
15
13
|
var t = _interopRequireWildcard(require("@babel/types"));
|
16
14
|
|
15
|
+
var _testUtils = require("../../test-utils");
|
16
|
+
|
17
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
18
18
|
|
19
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
20
20
|
|
21
|
-
var expectCode = function expectCode(ast) {
|
22
|
-
expect((0, _generator["default"])(ast).code).toMatchSnapshot();
|
23
|
-
};
|
24
|
-
|
25
|
-
var printCode = function printCode(ast) {
|
26
|
-
console.log((0, _generator["default"])(ast).code);
|
27
|
-
};
|
28
|
-
|
29
21
|
it('top import', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
30
22
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
31
23
|
while (1) {
|
32
24
|
switch (_context.prev = _context.next) {
|
33
25
|
case 0:
|
34
|
-
expectCode((0, _babel.importStmt)(['CosmWasmClient', 'ExecuteResult', 'SigningCosmWasmClient'], '@cosmjs/cosmwasm-stargate'));
|
26
|
+
(0, _testUtils.expectCode)((0, _babel.importStmt)(['CosmWasmClient', 'ExecuteResult', 'SigningCosmWasmClient'], '@cosmjs/cosmwasm-stargate'));
|
35
27
|
|
36
28
|
case 1:
|
37
29
|
case "end":
|
@@ -45,7 +37,7 @@ it('interfaces', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_
|
|
45
37
|
while (1) {
|
46
38
|
switch (_context2.prev = _context2.next) {
|
47
39
|
case 0:
|
48
|
-
expectCode(t.program([t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier('SG721ReadOnlyInstance'), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // methods
|
40
|
+
(0, _testUtils.expectCode)(t.program([t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier('SG721ReadOnlyInstance'), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // methods
|
49
41
|
t.tSPropertySignature(t.identifier('tokens'), t.tsTypeAnnotation(t.tsFunctionType(null, [(0, _babel.typedIdentifier)('owner', t.tsTypeAnnotation(t.tsStringKeyword())), (0, _babel.typedIdentifier)('startAfter', t.tsTypeAnnotation(t.tsStringKeyword()), true), (0, _babel.typedIdentifier)('limit', t.tsTypeAnnotation(t.tsStringKeyword()), true)], (0, _babel.promiseTypeAnnotation)('TokensResponse'))))]))), // extends
|
50
42
|
t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier('SG721Instance'), null, [t.tSExpressionWithTypeArguments(t.identifier('SG721ReadOnlyInstance'))], t.tSInterfaceBody([// contract address
|
51
43
|
t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // METHOD
|
@@ -63,7 +55,7 @@ it('readonly classes', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PUR
|
|
63
55
|
while (1) {
|
64
56
|
switch (_context3.prev = _context3.next) {
|
65
57
|
case 0:
|
66
|
-
expectCode(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721QueryClient', [// client
|
58
|
+
(0, _testUtils.expectCode)(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721QueryClient', [// client
|
67
59
|
(0, _babel.classProperty)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), // contractAddress
|
68
60
|
(0, _babel.classProperty)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword())), // constructor
|
69
61
|
t.classMethod('constructor', t.identifier('constructor'), [(0, _babel.typedIdentifier)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), (0, _babel.typedIdentifier)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement([// client/contract set
|
@@ -86,7 +78,7 @@ it('mutation classes', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PUR
|
|
86
78
|
while (1) {
|
87
79
|
switch (_context4.prev = _context4.next) {
|
88
80
|
case 0:
|
89
|
-
expectCode(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721Client', [// client
|
81
|
+
(0, _testUtils.expectCode)(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721Client', [// client
|
90
82
|
(0, _babel.classProperty)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), // contractAddress
|
91
83
|
(0, _babel.classProperty)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword())), // constructor
|
92
84
|
t.classMethod('constructor', t.identifier('constructor'), [(0, _babel.typedIdentifier)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), (0, _babel.typedIdentifier)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement([// super()
|
@@ -107,6 +99,6 @@ it('mutation classes', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PUR
|
|
107
99
|
it('object parms', function () {
|
108
100
|
var obj = t.objectPattern([t.objectProperty(t.identifier('includeExpired'), t.identifier('includeExpired'), false, true), t.objectProperty(t.identifier('tokenId'), t.identifier('tokenId'), false, true)]);
|
109
101
|
obj.typeAnnotation = t.tsTypeAnnotation(t.tsTypeLiteral([t.tsPropertySignature(t.identifier('includeExpired'), t.tsTypeAnnotation(t.tsBooleanKeyword())), t.tsPropertySignature(t.identifier('tokenId'), t.tsTypeAnnotation(t.tsStringKeyword()))]));
|
110
|
-
expectCode(t.program([t.expressionStatement(t.assignmentExpression('=', t.identifier('ownerOf'), (0, _babel.arrowFunctionExpression)([obj], t.blockStatement([// body
|
102
|
+
(0, _testUtils.expectCode)(t.program([t.expressionStatement(t.assignmentExpression('=', t.identifier('ownerOf'), (0, _babel.arrowFunctionExpression)([obj], t.blockStatement([// body
|
111
103
|
], []), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier('OwnerOfResponse'))]))))))]));
|
112
104
|
});
|
package/main/utils/index.js
CHANGED
@@ -15,4 +15,17 @@ Object.keys(_babel).forEach(function (key) {
|
|
15
15
|
return _babel[key];
|
16
16
|
}
|
17
17
|
});
|
18
|
+
});
|
19
|
+
|
20
|
+
var _types = require("./types");
|
21
|
+
|
22
|
+
Object.keys(_types).forEach(function (key) {
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
24
|
+
if (key in exports && exports[key] === _types[key]) return;
|
25
|
+
Object.defineProperty(exports, key, {
|
26
|
+
enumerable: true,
|
27
|
+
get: function get() {
|
28
|
+
return _types[key];
|
29
|
+
}
|
30
|
+
});
|
18
31
|
});
|
package/main/utils/types.js
CHANGED
@@ -26,31 +26,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
26
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
27
27
|
|
28
28
|
var getTypeStrFromRef = function getTypeStrFromRef($ref) {
|
29
|
-
|
30
|
-
|
31
|
-
return 'Binary';
|
32
|
-
|
33
|
-
default:
|
34
|
-
if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
|
35
|
-
return $ref.replace('#/definitions/', '');
|
36
|
-
}
|
37
|
-
|
38
|
-
throw new Error('what is $ref: ' + $ref);
|
29
|
+
if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
|
30
|
+
return $ref.replace('#/definitions/', '');
|
39
31
|
}
|
32
|
+
|
33
|
+
throw new Error('what is $ref: ' + $ref);
|
40
34
|
};
|
41
35
|
|
42
36
|
var getTypeFromRef = function getTypeFromRef($ref) {
|
43
|
-
|
44
|
-
case '#/definitions/Binary':
|
45
|
-
return t.tsTypeReference(t.identifier('Binary'));
|
46
|
-
|
47
|
-
default:
|
48
|
-
if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
|
49
|
-
return t.tsTypeReference(t.identifier($ref.replace('#/definitions/', '')));
|
50
|
-
}
|
51
|
-
|
52
|
-
throw new Error('what is $ref: ' + $ref);
|
53
|
-
}
|
37
|
+
return t.tsTypeReference(t.identifier(getTypeStrFromRef($ref)));
|
54
38
|
};
|
55
39
|
|
56
40
|
exports.getTypeFromRef = getTypeFromRef;
|
@@ -89,7 +73,7 @@ var getType = function getType(type) {
|
|
89
73
|
|
90
74
|
exports.getType = getType;
|
91
75
|
|
92
|
-
var getPropertyType = function getPropertyType(schema, prop) {
|
76
|
+
var getPropertyType = function getPropertyType(context, schema, prop) {
|
93
77
|
var _schema$properties, _schema$required, _schema$required2;
|
94
78
|
|
95
79
|
var props = (_schema$properties = schema.properties) !== null && _schema$properties !== void 0 ? _schema$properties : {};
|
@@ -187,7 +171,7 @@ var getPropertyType = function getPropertyType(schema, prop) {
|
|
187
171
|
|
188
172
|
exports.getPropertyType = getPropertyType;
|
189
173
|
|
190
|
-
function getPropertySignatureFromProp(jsonschema, prop, camelize) {
|
174
|
+
function getPropertySignatureFromProp(context, jsonschema, prop, camelize) {
|
191
175
|
if (jsonschema.properties[prop].type === 'object') {
|
192
176
|
if (jsonschema.properties[prop].title) {
|
193
177
|
return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(jsonschema.properties[prop].title))));
|
@@ -237,45 +221,63 @@ function getPropertySignatureFromProp(jsonschema, prop, camelize) {
|
|
237
221
|
}
|
238
222
|
|
239
223
|
try {
|
240
|
-
getPropertyType(jsonschema, prop);
|
224
|
+
getPropertyType(context, jsonschema, prop);
|
241
225
|
} catch (e) {
|
242
226
|
console.log(e);
|
243
227
|
console.log(jsonschema, prop);
|
244
228
|
}
|
245
229
|
|
246
|
-
var _getPropertyType = getPropertyType(jsonschema, prop),
|
230
|
+
var _getPropertyType = getPropertyType(context, jsonschema, prop),
|
247
231
|
type = _getPropertyType.type,
|
248
232
|
optional = _getPropertyType.optional;
|
249
233
|
|
250
234
|
return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(type), optional);
|
251
235
|
}
|
252
236
|
|
253
|
-
var getParamsTypeAnnotation = function getParamsTypeAnnotation(jsonschema) {
|
237
|
+
var getParamsTypeAnnotation = function getParamsTypeAnnotation(context, jsonschema) {
|
254
238
|
var _jsonschema$propertie;
|
255
239
|
|
256
|
-
var camelize = arguments.length >
|
240
|
+
var camelize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
257
241
|
var keys = Object.keys((_jsonschema$propertie = jsonschema.properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {});
|
242
|
+
|
243
|
+
if (!keys.length && jsonschema.$ref) {
|
244
|
+
return t.tsTypeAnnotation(getTypeFromRef(jsonschema.$ref));
|
245
|
+
}
|
246
|
+
|
258
247
|
if (!keys.length) return undefined;
|
259
248
|
var typedParams = keys.map(function (prop) {
|
260
|
-
return getPropertySignatureFromProp(jsonschema, prop, camelize);
|
249
|
+
return getPropertySignatureFromProp(context, jsonschema, prop, camelize);
|
261
250
|
});
|
262
251
|
return t.tsTypeAnnotation(t.tsTypeLiteral((0, _toConsumableArray2["default"])(typedParams)));
|
263
252
|
};
|
264
253
|
|
265
254
|
exports.getParamsTypeAnnotation = getParamsTypeAnnotation;
|
266
255
|
|
267
|
-
var createTypedObjectParams = function createTypedObjectParams(jsonschema) {
|
256
|
+
var createTypedObjectParams = function createTypedObjectParams(context, jsonschema) {
|
268
257
|
var _jsonschema$propertie2;
|
269
258
|
|
270
|
-
var camelize = arguments.length >
|
259
|
+
var camelize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
271
260
|
var keys = Object.keys((_jsonschema$propertie2 = jsonschema.properties) !== null && _jsonschema$propertie2 !== void 0 ? _jsonschema$propertie2 : {});
|
272
|
-
|
261
|
+
|
262
|
+
if (!keys.length) {
|
263
|
+
// is there a ref?
|
264
|
+
if (jsonschema.$ref) {
|
265
|
+
var _obj = context.refLookup(jsonschema.$ref);
|
266
|
+
|
267
|
+
if (_obj) {
|
268
|
+
return createTypedObjectParams(context, _obj, camelize);
|
269
|
+
}
|
270
|
+
} // no results...
|
271
|
+
|
272
|
+
|
273
|
+
return;
|
274
|
+
}
|
273
275
|
|
274
276
|
var params = keys.map(function (prop) {
|
275
277
|
return t.objectProperty(camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), false, true);
|
276
278
|
});
|
277
279
|
var obj = t.objectPattern((0, _toConsumableArray2["default"])(params));
|
278
|
-
obj.typeAnnotation = getParamsTypeAnnotation(jsonschema, camelize);
|
280
|
+
obj.typeAnnotation = getParamsTypeAnnotation(context, jsonschema, camelize);
|
279
281
|
return obj;
|
280
282
|
};
|
281
283
|
|
@@ -1,25 +1,24 @@
|
|
1
1
|
import * as t from '@babel/types';
|
2
2
|
import { camel, pascal } from 'case';
|
3
|
-
import { bindMethod, typedIdentifier, promiseTypeAnnotation, classDeclaration, classProperty, arrowFunctionExpression, getMessageProperties } from '
|
4
|
-
import { getPropertyType, getType, createTypedObjectParams } from '
|
5
|
-
import { identifier,
|
6
|
-
export const
|
3
|
+
import { bindMethod, typedIdentifier, promiseTypeAnnotation, classDeclaration, classProperty, arrowFunctionExpression, getMessageProperties } from '../utils';
|
4
|
+
import { getPropertyType, getType, createTypedObjectParams } from '../utils/types';
|
5
|
+
import { identifier, propertySignature } from '../utils/babel';
|
6
|
+
export const CONSTANT_EXEC_PARAMS = [t.assignmentPattern(identifier('fee', t.tsTypeAnnotation(t.tsUnionType([t.tSNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), false), t.stringLiteral('auto')), identifier('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), identifier('funds', t.tsTypeAnnotation(t.tsArrayType(t.tsTypeReference(t.identifier('Coin')))), true)];
|
7
|
+
export const FIXED_EXECUTE_PARAMS = [identifier('fee', t.tsTypeAnnotation(t.tsUnionType([t.tsNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), true), identifier('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), identifier('funds', t.tsTypeAnnotation(t.tsArrayType(t.tsTypeReference(t.identifier('Coin')))), true)];
|
8
|
+
export const createWasmQueryMethod = (context, jsonschema) => {
|
7
9
|
const underscoreName = Object.keys(jsonschema.properties)[0];
|
8
10
|
const methodName = camel(underscoreName);
|
9
11
|
const responseType = pascal(`${methodName}Response`);
|
10
|
-
const
|
11
|
-
const
|
12
|
-
const args = Object.keys(properties).map(prop => {
|
13
|
-
return t.objectProperty(t.identifier(prop), t.identifier(camel(prop)), false, true);
|
14
|
-
});
|
12
|
+
const obj = createTypedObjectParams(context, jsonschema.properties[underscoreName]);
|
13
|
+
const args = getWasmMethodArgs(context, jsonschema.properties[underscoreName]);
|
15
14
|
const actionArg = t.objectProperty(t.identifier(underscoreName), t.objectExpression(args));
|
16
15
|
return t.classProperty(t.identifier(methodName), arrowFunctionExpression(obj ? [obj] : [], t.blockStatement([t.returnStatement(t.callExpression(t.memberExpression(t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('queryContractSmart')), [t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.objectExpression([actionArg])]))]), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tSTypeReference(t.identifier(responseType))]))), true));
|
17
16
|
};
|
18
|
-
export const createQueryClass = (className, implementsClassName, queryMsg) => {
|
17
|
+
export const createQueryClass = (context, className, implementsClassName, queryMsg) => {
|
19
18
|
const propertyNames = getMessageProperties(queryMsg).map(method => Object.keys(method.properties)?.[0]).filter(Boolean);
|
20
19
|
const bindings = propertyNames.map(camel).map(bindMethod);
|
21
20
|
const methods = getMessageProperties(queryMsg).map(schema => {
|
22
|
-
return createWasmQueryMethod(schema);
|
21
|
+
return createWasmQueryMethod(context, schema);
|
23
22
|
});
|
24
23
|
return t.exportNamedDeclaration(classDeclaration(className, [// client
|
25
24
|
classProperty('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), // contractAddress
|
@@ -27,24 +26,36 @@ export const createQueryClass = (className, implementsClassName, queryMsg) => {
|
|
27
26
|
t.classMethod('constructor', t.identifier('constructor'), [typedIdentifier('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), typedIdentifier('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement([// client/contract set
|
28
27
|
t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('client'))), t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.identifier('contractAddress'))), ...bindings])), ...methods], [t.tSExpressionWithTypeArguments(t.identifier(implementsClassName))]));
|
29
28
|
};
|
30
|
-
export const
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
29
|
+
export const getWasmMethodArgs = (context, jsonschema) => {
|
30
|
+
let keys = Object.keys(jsonschema.properties ?? {}); // only 1 degree $ref-lookup
|
31
|
+
|
32
|
+
if (!keys.length && jsonschema.$ref) {
|
33
|
+
const obj = context.refLookup(jsonschema.$ref);
|
34
|
+
|
35
|
+
if (obj) {
|
36
|
+
keys = Object.keys(obj.properties ?? {});
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
const args = keys.map(prop => {
|
37
41
|
return t.objectProperty(t.identifier(prop), t.identifier(camel(prop)), false, prop === camel(prop));
|
38
42
|
});
|
43
|
+
return args;
|
44
|
+
};
|
45
|
+
export const createWasmExecMethod = (context, jsonschema) => {
|
46
|
+
const underscoreName = Object.keys(jsonschema.properties)[0];
|
47
|
+
const methodName = camel(underscoreName);
|
48
|
+
const obj = createTypedObjectParams(context, jsonschema.properties[underscoreName]);
|
49
|
+
const args = getWasmMethodArgs(context, jsonschema.properties[underscoreName]);
|
39
50
|
return t.classProperty(t.identifier(methodName), arrowFunctionExpression(obj ? [// props
|
40
51
|
obj, ...CONSTANT_EXEC_PARAMS] : CONSTANT_EXEC_PARAMS, t.blockStatement([t.returnStatement(t.awaitExpression(t.callExpression(t.memberExpression(t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('execute')), [t.memberExpression(t.thisExpression(), t.identifier('sender')), t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.objectExpression([t.objectProperty(t.identifier(underscoreName), t.objectExpression([...args]))]), t.identifier('fee'), t.identifier('memo'), t.identifier('funds')])))]), // return type
|
41
52
|
t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tSTypeReference(t.identifier('ExecuteResult'))]))), true));
|
42
53
|
};
|
43
|
-
export const createExecuteClass = (className, implementsClassName, extendsClassName, execMsg) => {
|
54
|
+
export const createExecuteClass = (context, className, implementsClassName, extendsClassName, execMsg) => {
|
44
55
|
const propertyNames = getMessageProperties(execMsg).map(method => Object.keys(method.properties)?.[0]).filter(Boolean);
|
45
56
|
const bindings = propertyNames.map(camel).map(bindMethod);
|
46
57
|
const methods = getMessageProperties(execMsg).map(schema => {
|
47
|
-
return createWasmExecMethod(schema);
|
58
|
+
return createWasmExecMethod(context, schema);
|
48
59
|
});
|
49
60
|
const blockStmt = [];
|
50
61
|
|
@@ -61,19 +72,19 @@ export const createExecuteClass = (className, implementsClassName, extendsClassN
|
|
61
72
|
classProperty('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword())), // constructor
|
62
73
|
t.classMethod('constructor', t.identifier('constructor'), [typedIdentifier('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), typedIdentifier('sender', t.tsTypeAnnotation(t.tsStringKeyword())), typedIdentifier('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement(blockStmt)), ...methods], [t.tSExpressionWithTypeArguments(t.identifier(implementsClassName))], extendsClassName ? t.identifier(extendsClassName) : null));
|
63
74
|
};
|
64
|
-
export const createExecuteInterface = (className, extendsClassName, execMsg) => {
|
75
|
+
export const createExecuteInterface = (context, className, extendsClassName, execMsg) => {
|
65
76
|
const methods = getMessageProperties(execMsg).map(jsonschema => {
|
66
77
|
const underscoreName = Object.keys(jsonschema.properties)[0];
|
67
78
|
const methodName = camel(underscoreName);
|
68
|
-
return createPropertyFunctionWithObjectParamsForExec(methodName, 'ExecuteResult', jsonschema.properties[underscoreName]);
|
79
|
+
return createPropertyFunctionWithObjectParamsForExec(context, methodName, 'ExecuteResult', jsonschema.properties[underscoreName]);
|
69
80
|
});
|
70
81
|
const extendsAst = extendsClassName ? [t.tSExpressionWithTypeArguments(t.identifier(extendsClassName))] : [];
|
71
82
|
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, extendsAst, t.tSInterfaceBody([// contract address
|
72
83
|
t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // contract address
|
73
84
|
t.tSPropertySignature(t.identifier('sender'), t.tsTypeAnnotation(t.tsStringKeyword())), ...methods])));
|
74
85
|
};
|
75
|
-
export const createPropertyFunctionWithObjectParams = (methodName, responseType, jsonschema) => {
|
76
|
-
const obj = createTypedObjectParams(jsonschema);
|
86
|
+
export const createPropertyFunctionWithObjectParams = (context, methodName, responseType, jsonschema) => {
|
87
|
+
const obj = createTypedObjectParams(context, jsonschema);
|
77
88
|
const func = {
|
78
89
|
type: 'TSFunctionType',
|
79
90
|
typeAnnotation: promiseTypeAnnotation(responseType),
|
@@ -81,9 +92,8 @@ export const createPropertyFunctionWithObjectParams = (methodName, responseType,
|
|
81
92
|
};
|
82
93
|
return t.tSPropertySignature(t.identifier(methodName), t.tsTypeAnnotation(func));
|
83
94
|
};
|
84
|
-
export const
|
85
|
-
|
86
|
-
const obj = createTypedObjectParams(jsonschema);
|
95
|
+
export const createPropertyFunctionWithObjectParamsForExec = (context, methodName, responseType, jsonschema) => {
|
96
|
+
const obj = createTypedObjectParams(context, jsonschema);
|
87
97
|
const func = {
|
88
98
|
type: 'TSFunctionType',
|
89
99
|
typeAnnotation: promiseTypeAnnotation(responseType),
|
@@ -91,16 +101,16 @@ export const createPropertyFunctionWithObjectParamsForExec = (methodName, respon
|
|
91
101
|
};
|
92
102
|
return t.tSPropertySignature(t.identifier(methodName), t.tsTypeAnnotation(func));
|
93
103
|
};
|
94
|
-
export const createQueryInterface = (className, queryMsg) => {
|
104
|
+
export const createQueryInterface = (context, className, queryMsg) => {
|
95
105
|
const methods = getMessageProperties(queryMsg).map(jsonschema => {
|
96
106
|
const underscoreName = Object.keys(jsonschema.properties)[0];
|
97
107
|
const methodName = camel(underscoreName);
|
98
108
|
const responseType = pascal(`${methodName}Response`);
|
99
|
-
return createPropertyFunctionWithObjectParams(methodName, responseType, jsonschema.properties[underscoreName]);
|
109
|
+
return createPropertyFunctionWithObjectParams(context, methodName, responseType, jsonschema.properties[underscoreName]);
|
100
110
|
});
|
101
111
|
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), ...methods])));
|
102
112
|
};
|
103
|
-
export const createTypeOrInterface = (Type, jsonschema) => {
|
113
|
+
export const createTypeOrInterface = (context, Type, jsonschema) => {
|
104
114
|
if (jsonschema.type !== 'object') {
|
105
115
|
if (!jsonschema.type) {
|
106
116
|
return t.exportNamedDeclaration(t.tsTypeAliasDeclaration(t.identifier(Type), null, t.tsTypeReference(t.identifier(jsonschema.title))));
|
@@ -113,12 +123,12 @@ export const createTypeOrInterface = (Type, jsonschema) => {
|
|
113
123
|
const {
|
114
124
|
type,
|
115
125
|
optional
|
116
|
-
} = getPropertyType(jsonschema, prop);
|
126
|
+
} = getPropertyType(context, jsonschema, prop);
|
117
127
|
return propertySignature(camel(prop), t.tsTypeAnnotation(type), optional);
|
118
128
|
});
|
119
129
|
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(Type), null, [], t.tsInterfaceBody([...props])));
|
120
130
|
};
|
121
|
-
export const createTypeInterface = jsonschema => {
|
131
|
+
export const createTypeInterface = (context, jsonschema) => {
|
122
132
|
const Type = jsonschema.title;
|
123
|
-
return createTypeOrInterface(Type, jsonschema);
|
133
|
+
return createTypeOrInterface(context, Type, jsonschema);
|
124
134
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './client';
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import message from '../../../../../__fixtures__/misc/schema/arrays.json';
|
2
|
+
import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
|
3
|
+
import { RenderContext } from '../../context';
|
4
|
+
import { expectCode } from '../../../test-utils';
|
5
|
+
const ctx = new RenderContext(message);
|
6
|
+
it('execute_msg_for__empty', () => {
|
7
|
+
expectCode(createTypeInterface(ctx, message));
|
8
|
+
});
|
9
|
+
it('query classes', () => {
|
10
|
+
expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', message));
|
11
|
+
});
|
12
|
+
it('execute classes array types', () => {
|
13
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, message));
|
14
|
+
});
|
15
|
+
it('execute interfaces no extends', () => {
|
16
|
+
expectCode(createExecuteInterface(ctx, 'SG721Instance', null, message));
|
17
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import execute_msg from '../../../../../__fixtures__/daodao/cw-named-groups/execute_msg.json';
|
2
|
+
import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
|
3
|
+
import { RenderContext } from '../../context';
|
4
|
+
import { expectCode } from '../../../test-utils';
|
5
|
+
const ctx = new RenderContext(execute_msg);
|
6
|
+
it('execute_msg', () => {
|
7
|
+
expectCode(createTypeInterface(ctx, execute_msg));
|
8
|
+
});
|
9
|
+
it('query classes', () => {
|
10
|
+
expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', execute_msg));
|
11
|
+
});
|
12
|
+
it('execute classes array types', () => {
|
13
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg));
|
14
|
+
});
|
15
|
+
it('execute interfaces no extends', () => {
|
16
|
+
expectCode(createExecuteInterface(ctx, 'SG721Instance', null, execute_msg));
|
17
|
+
});
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import execute_msg from '../../../../../__fixtures__/daodao/cw-proposal-single/execute_msg.json';
|
2
|
+
import query_msg from '../../../../../__fixtures__/daodao/cw-proposal-single/query_msg.json';
|
3
|
+
import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
|
4
|
+
import { RenderContext } from '../../context';
|
5
|
+
import { expectCode } from '../../../test-utils';
|
6
|
+
it('execute_msg_for', () => {
|
7
|
+
const ctx = new RenderContext(execute_msg);
|
8
|
+
expectCode(createTypeInterface(ctx, execute_msg));
|
9
|
+
});
|
10
|
+
it('query classes', () => {
|
11
|
+
const ctx = new RenderContext(query_msg);
|
12
|
+
expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', query_msg));
|
13
|
+
});
|
14
|
+
it('execute classes array types', () => {
|
15
|
+
const ctx = new RenderContext(execute_msg);
|
16
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg));
|
17
|
+
});
|
18
|
+
it('execute interfaces no extends', () => {
|
19
|
+
const ctx = new RenderContext(execute_msg);
|
20
|
+
expectCode(createExecuteInterface(ctx, 'SG721Instance', null, execute_msg));
|
21
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import query_msg from '../../../../../__fixtures__/daodao/cw-admin-factory/query_msg.json';
|
2
|
+
import { createQueryClass, createQueryInterface } from '../client';
|
3
|
+
import { RenderContext } from '../../context';
|
4
|
+
import { expectCode } from '../../../test-utils';
|
5
|
+
const ctx = new RenderContext(query_msg);
|
6
|
+
it('query classes', () => {
|
7
|
+
expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', query_msg));
|
8
|
+
});
|
9
|
+
it('query interface', () => {
|
10
|
+
expectCode(createQueryInterface(ctx, 'ReadOnlyInstance', query_msg));
|
11
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import execute_msg_for__empty from '../../../../../__fixtures__/sg721/execute_msg_for__empty.json';
|
2
|
+
import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
|
3
|
+
import { RenderContext } from '../../context';
|
4
|
+
import { expectCode } from '../../../test-utils';
|
5
|
+
const ctx = new RenderContext(execute_msg_for__empty);
|
6
|
+
it('execute_msg_for__empty', () => {
|
7
|
+
expectCode(createTypeInterface(ctx, execute_msg_for__empty));
|
8
|
+
});
|
9
|
+
it('query classes', () => {
|
10
|
+
expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', execute_msg_for__empty));
|
11
|
+
});
|
12
|
+
it('execute classes array types', () => {
|
13
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg_for__empty));
|
14
|
+
});
|
15
|
+
it('execute interfaces no extends', () => {
|
16
|
+
expectCode(createExecuteInterface(ctx, 'SG721Instance', null, execute_msg_for__empty));
|
17
|
+
});
|