wasm-ast-types 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/main/client/client.js +2 -2
  2. package/main/client/test/ts-client.arrays-ref.spec.js +1 -3
  3. package/main/client/test/ts-client.arrays.spec.js +1 -3
  4. package/main/client/test/ts-client.cw-named-groups.test.js +1 -3
  5. package/main/client/test/ts-client.cw-proposal-single.test.js +4 -6
  6. package/main/client/test/ts-client.empty-enums.spec.js +1 -3
  7. package/main/client/test/ts-client.issues.test.js +4 -6
  8. package/main/client/test/ts-client.sg721.spec.js +1 -3
  9. package/main/client/test/ts-client.spec.js +17 -19
  10. package/main/client/test/ts-client.vectis.spec.js +9 -11
  11. package/main/context/context.js +25 -4
  12. package/main/message-composer/message-composer.spec.js +2 -4
  13. package/main/react-query/react-query.js +1 -1
  14. package/main/react-query/react-query.spec.js +5 -7
  15. package/main/recoil/recoil.js +3 -3
  16. package/main/recoil/recoil.spec.js +2 -4
  17. package/main/utils/types.js +13 -1
  18. package/module/client/client.js +4 -4
  19. package/module/client/test/ts-client.arrays-ref.spec.js +2 -3
  20. package/module/client/test/ts-client.arrays.spec.js +2 -3
  21. package/module/client/test/ts-client.cw-named-groups.test.js +2 -3
  22. package/module/client/test/ts-client.cw-proposal-single.test.js +5 -6
  23. package/module/client/test/ts-client.empty-enums.spec.js +2 -3
  24. package/module/client/test/ts-client.issues.test.js +5 -6
  25. package/module/client/test/ts-client.sg721.spec.js +2 -3
  26. package/module/client/test/ts-client.spec.js +18 -19
  27. package/module/client/test/ts-client.vectis.spec.js +10 -11
  28. package/module/context/context.js +23 -3
  29. package/module/message-composer/message-composer.spec.js +3 -4
  30. package/module/react-query/react-query.js +2 -2
  31. package/module/react-query/react-query.spec.js +6 -7
  32. package/module/recoil/recoil.js +4 -4
  33. package/module/recoil/recoil.spec.js +3 -4
  34. package/module/utils/types.js +7 -1
  35. package/package.json +2 -2
  36. package/types/context/context.d.ts +25 -3
  37. package/types/react-query/react-query.d.ts +3 -2
  38. package/types/recoil/recoil.d.ts +1 -1
  39. package/types/utils/types.d.ts +1 -0
@@ -33,7 +33,7 @@ exports.FIXED_EXECUTE_PARAMS = FIXED_EXECUTE_PARAMS;
33
33
  var createWasmQueryMethod = function createWasmQueryMethod(context, jsonschema) {
34
34
  var underscoreName = Object.keys(jsonschema.properties)[0];
35
35
  var methodName = (0, _case.camel)(underscoreName);
36
- var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
36
+ var responseType = (0, _types2.getResponseType)(context, underscoreName);
37
37
  var obj = (0, _types2.createTypedObjectParams)(context, jsonschema.properties[underscoreName]);
38
38
  var args = getWasmMethodArgs(context, jsonschema.properties[underscoreName]);
39
39
  var actionArg = t.objectProperty(t.identifier(underscoreName), t.objectExpression(args));
@@ -174,7 +174,7 @@ var createQueryInterface = function createQueryInterface(context, className, que
174
174
  var methods = (0, _utils.getMessageProperties)(queryMsg).map(function (jsonschema) {
175
175
  var underscoreName = Object.keys(jsonschema.properties)[0];
176
176
  var methodName = (0, _case.camel)(underscoreName);
177
- var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
177
+ var responseType = (0, _types2.getResponseType)(context, underscoreName);
178
178
  return createPropertyFunctionWithObjectParams(context, methodName, responseType, jsonschema.properties[underscoreName]);
179
179
  });
180
180
  return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword()))].concat((0, _toConsumableArray2["default"])(methods)))));
@@ -6,11 +6,9 @@ var _arraysRef = _interopRequireDefault(require("../../../../../__fixtures__/mis
6
6
 
7
7
  var _client = require("../client");
8
8
 
9
- var _context = require("../../context");
10
-
11
9
  var _testUtils = require("../../../test-utils");
12
10
 
13
- var ctx = new _context.RenderContext(_arraysRef["default"]);
11
+ var ctx = (0, _testUtils.makeContext)(_arraysRef["default"]);
14
12
  it('execute_msg_for__empty', function () {
15
13
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _arraysRef["default"]));
16
14
  });
@@ -6,11 +6,9 @@ var _arrays = _interopRequireDefault(require("../../../../../__fixtures__/misc/s
6
6
 
7
7
  var _client = require("../client");
8
8
 
9
- var _context = require("../../context");
10
-
11
9
  var _testUtils = require("../../../test-utils");
12
10
 
13
- var ctx = new _context.RenderContext(_arrays["default"]);
11
+ var ctx = (0, _testUtils.makeContext)(_arrays["default"]);
14
12
  it('execute_msg_for__empty', function () {
15
13
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _arrays["default"]));
16
14
  });
@@ -6,11 +6,9 @@ var _execute_msg = _interopRequireDefault(require("../../../../../__fixtures__/d
6
6
 
7
7
  var _client = require("../client");
8
8
 
9
- var _context = require("../../context");
10
-
11
9
  var _testUtils = require("../../../test-utils");
12
10
 
13
- var ctx = new _context.RenderContext(_execute_msg["default"]);
11
+ var ctx = (0, _testUtils.makeContext)(_execute_msg["default"]);
14
12
  it('execute_msg', function () {
15
13
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg["default"]));
16
14
  });
@@ -8,23 +8,21 @@ var _query_msg = _interopRequireDefault(require("../../../../../__fixtures__/dao
8
8
 
9
9
  var _client = require("../client");
10
10
 
11
- var _context = require("../../context");
12
-
13
11
  var _testUtils = require("../../../test-utils");
14
12
 
15
13
  it('execute_msg_for', function () {
16
- var ctx = new _context.RenderContext(_execute_msg["default"]);
14
+ var ctx = (0, _testUtils.makeContext)(_execute_msg["default"]);
17
15
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg["default"]));
18
16
  });
19
17
  it('query classes', function () {
20
- var ctx = new _context.RenderContext(_query_msg["default"]);
18
+ var ctx = (0, _testUtils.makeContext)(_query_msg["default"]);
21
19
  (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _query_msg["default"]));
22
20
  });
23
21
  it('execute classes array types', function () {
24
- var ctx = new _context.RenderContext(_execute_msg["default"]);
22
+ var ctx = (0, _testUtils.makeContext)(_execute_msg["default"]);
25
23
  (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg["default"]));
26
24
  });
27
25
  it('execute interfaces no extends', function () {
28
- var ctx = new _context.RenderContext(_execute_msg["default"]);
26
+ var ctx = (0, _testUtils.makeContext)(_execute_msg["default"]);
29
27
  (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg["default"]));
30
28
  });
@@ -6,11 +6,9 @@ var _query_msg = _interopRequireDefault(require("../../../../../__fixtures__/dao
6
6
 
7
7
  var _client = require("../client");
8
8
 
9
- var _context = require("../../context");
10
-
11
9
  var _testUtils = require("../../../test-utils");
12
10
 
13
- var ctx = new _context.RenderContext(_query_msg["default"]);
11
+ var ctx = (0, _testUtils.makeContext)(_query_msg["default"]);
14
12
  it('query classes', function () {
15
13
  (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _query_msg["default"]));
16
14
  });
@@ -10,8 +10,6 @@ var _testUtils = require("../../../test-utils");
10
10
 
11
11
  var _client = require("../client");
12
12
 
13
- var _context5 = require("../../context");
14
-
15
13
  var _jestInCase = _interopRequireDefault(require("jest-in-case"));
16
14
 
17
15
  var contracts = (0, _testUtils.globContracts)('issues/55');
@@ -22,7 +20,7 @@ var contracts = (0, _testUtils.globContracts)('issues/55');
22
20
  while (1) {
23
21
  switch (_context.prev = _context.next) {
24
22
  case 0:
25
- ctx = new _context5.RenderContext(opts.content);
23
+ ctx = (0, _testUtils.makeContext)(opts.content);
26
24
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, opts.content));
27
25
 
28
26
  case 2:
@@ -44,7 +42,7 @@ var contracts = (0, _testUtils.globContracts)('issues/55');
44
42
  while (1) {
45
43
  switch (_context2.prev = _context2.next) {
46
44
  case 0:
47
- ctx = new _context5.RenderContext(opts.content);
45
+ ctx = (0, _testUtils.makeContext)(opts.content);
48
46
  (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', opts.content));
49
47
 
50
48
  case 2:
@@ -66,7 +64,7 @@ var contracts = (0, _testUtils.globContracts)('issues/55');
66
64
  while (1) {
67
65
  switch (_context3.prev = _context3.next) {
68
66
  case 0:
69
- ctx = new _context5.RenderContext(opts.content);
67
+ ctx = (0, _testUtils.makeContext)(opts.content);
70
68
  (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, opts.content));
71
69
 
72
70
  case 2:
@@ -88,7 +86,7 @@ var contracts = (0, _testUtils.globContracts)('issues/55');
88
86
  while (1) {
89
87
  switch (_context4.prev = _context4.next) {
90
88
  case 0:
91
- ctx = new _context5.RenderContext(opts.content);
89
+ ctx = (0, _testUtils.makeContext)(opts.content);
92
90
  (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, opts.content));
93
91
 
94
92
  case 2:
@@ -6,11 +6,9 @@ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../../__f
6
6
 
7
7
  var _client = require("../client");
8
8
 
9
- var _context = require("../../context");
10
-
11
9
  var _testUtils = require("../../../test-utils");
12
10
 
13
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
11
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
14
12
  it('execute_msg_for__empty', function () {
15
13
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg_for__empty["default"]));
16
14
  });
@@ -32,75 +32,73 @@ var _tokens_response = _interopRequireDefault(require("../../../../../__fixtures
32
32
 
33
33
  var _client = require("../client");
34
34
 
35
- var _context = require("../../context");
36
-
37
35
  var _testUtils = require("../../../test-utils");
38
36
 
39
37
  it('approval_response', function () {
40
- var ctx = new _context.RenderContext(_approval_response["default"]);
38
+ var ctx = (0, _testUtils.makeContext)(_approval_response["default"]);
41
39
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _approval_response["default"]));
42
40
  });
43
41
  it('all_nft_info_response', function () {
44
- var ctx = new _context.RenderContext(_all_nft_info_response["default"]);
42
+ var ctx = (0, _testUtils.makeContext)(_all_nft_info_response["default"]);
45
43
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _all_nft_info_response["default"]));
46
44
  });
47
45
  it('approvals_response', function () {
48
- var ctx = new _context.RenderContext(_approvals_response["default"]);
46
+ var ctx = (0, _testUtils.makeContext)(_approvals_response["default"]);
49
47
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _approvals_response["default"]));
50
48
  });
51
49
  it('collection_info_response', function () {
52
- var ctx = new _context.RenderContext(_collection_info_response["default"]);
50
+ var ctx = (0, _testUtils.makeContext)(_collection_info_response["default"]);
53
51
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _collection_info_response["default"]));
54
52
  });
55
53
  it('contract_info_response', function () {
56
- var ctx = new _context.RenderContext(_contract_info_response["default"]);
54
+ var ctx = (0, _testUtils.makeContext)(_contract_info_response["default"]);
57
55
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _contract_info_response["default"]));
58
56
  });
59
57
  it('instantiate_msg', function () {
60
- var ctx = new _context.RenderContext(_instantiate_msg["default"]);
58
+ var ctx = (0, _testUtils.makeContext)(_instantiate_msg["default"]);
61
59
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _instantiate_msg["default"]));
62
60
  });
63
61
  it('nft_info_response', function () {
64
- var ctx = new _context.RenderContext(_nft_info_response["default"]);
62
+ var ctx = (0, _testUtils.makeContext)(_nft_info_response["default"]);
65
63
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _nft_info_response["default"]));
66
64
  });
67
65
  it('num_tokens_response', function () {
68
- var ctx = new _context.RenderContext(_num_tokens_response["default"]);
66
+ var ctx = (0, _testUtils.makeContext)(_num_tokens_response["default"]);
69
67
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _num_tokens_response["default"]));
70
68
  });
71
69
  it('operators_response', function () {
72
- var ctx = new _context.RenderContext(_operators_response["default"]);
70
+ var ctx = (0, _testUtils.makeContext)(_operators_response["default"]);
73
71
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _operators_response["default"]));
74
72
  });
75
73
  it('owner_of_response', function () {
76
- var ctx = new _context.RenderContext(_owner_of_response["default"]);
74
+ var ctx = (0, _testUtils.makeContext)(_owner_of_response["default"]);
77
75
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _owner_of_response["default"]));
78
76
  });
79
77
  it('tokens_response', function () {
80
- var ctx = new _context.RenderContext(_tokens_response["default"]);
78
+ var ctx = (0, _testUtils.makeContext)(_tokens_response["default"]);
81
79
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _tokens_response["default"]));
82
80
  });
83
81
  it('query classes', function () {
84
- var ctx = new _context.RenderContext(_query_msg["default"]);
82
+ var ctx = (0, _testUtils.makeContext)(_query_msg["default"]);
85
83
  (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _query_msg["default"]));
86
84
  });
87
85
  it('execute classes', function () {
88
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
86
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
89
87
  (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', 'SG721QueryClient', _execute_msg_for__empty["default"]));
90
88
  });
91
89
  it('execute classes no extends', function () {
92
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
90
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
93
91
  (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
94
92
  });
95
93
  it('execute classes array types', function () {
96
- var ctx = new _context.RenderContext(_execute_msg["default"]);
94
+ var ctx = (0, _testUtils.makeContext)(_execute_msg["default"]);
97
95
  (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg["default"]));
98
96
  });
99
97
  it('execute interfaces no extends', function () {
100
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
98
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
101
99
  (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg_for__empty["default"]));
102
100
  });
103
101
  it('query interfaces', function () {
104
- var ctx = new _context.RenderContext(_query_msg["default"]);
102
+ var ctx = (0, _testUtils.makeContext)(_query_msg["default"]);
105
103
  (0, _testUtils.expectCode)((0, _client.createQueryInterface)(ctx, 'SG721ReadOnlyInstance', _query_msg["default"]));
106
104
  });
@@ -14,43 +14,41 @@ var _relay_transaction = _interopRequireDefault(require("../../../../../__fixtur
14
14
 
15
15
  var _client = require("../client");
16
16
 
17
- var _context = require("../../context");
18
-
19
17
  var _testUtils = require("../../../test-utils");
20
18
 
21
19
  it('cosmos_msg_for__empty', function () {
22
- var ctx = new _context.RenderContext(_cosmos_msg_for__empty["default"]);
20
+ var ctx = (0, _testUtils.makeContext)(_cosmos_msg_for__empty["default"]);
23
21
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _cosmos_msg_for__empty["default"]));
24
22
  });
25
23
  it('execute_msg_for__empty', function () {
26
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
24
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
27
25
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg_for__empty["default"]));
28
26
  });
29
27
  it('can_execute_relay_response', function () {
30
- var ctx = new _context.RenderContext(_can_execute_relay_response["default"]);
28
+ var ctx = (0, _testUtils.makeContext)(_can_execute_relay_response["default"]);
31
29
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _can_execute_relay_response["default"]));
32
30
  });
33
31
  it('info_response', function () {
34
- var ctx = new _context.RenderContext(_info_response["default"]);
32
+ var ctx = (0, _testUtils.makeContext)(_info_response["default"]);
35
33
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _info_response["default"]));
36
34
  });
37
35
  it('relay_transaction', function () {
38
- var ctx = new _context.RenderContext(_relay_transaction["default"]);
36
+ var ctx = (0, _testUtils.makeContext)(_relay_transaction["default"]);
39
37
  (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _relay_transaction["default"]));
40
38
  });
41
39
  it('query classes', function () {
42
- var ctx = new _context.RenderContext(_cosmos_msg_for__empty["default"]);
40
+ var ctx = (0, _testUtils.makeContext)(_cosmos_msg_for__empty["default"]);
43
41
  (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _cosmos_msg_for__empty["default"]));
44
42
  });
45
43
  it('query classes', function () {
46
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
44
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
47
45
  (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _execute_msg_for__empty["default"]));
48
46
  });
49
47
  it('execute classes array types', function () {
50
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
48
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
51
49
  (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
52
50
  });
53
51
  it('execute interfaces no extends', function () {
54
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
52
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
55
53
  (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg_for__empty["default"]));
56
54
  });
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.defaultOptions = exports.RenderContext = void 0;
8
+ exports.getDefinitionSchema = exports.defaultOptions = exports.RenderContext = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -17,6 +17,11 @@ var _imports = require("./imports");
17
17
 
18
18
  var _deepmerge = _interopRequireDefault(require("deepmerge"));
19
19
 
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+
24
+ ;
20
25
  var defaultOptions = {
21
26
  types: {
22
27
  enabled: true,
@@ -42,12 +47,28 @@ var defaultOptions = {
42
47
  };
43
48
  exports.defaultOptions = defaultOptions;
44
49
 
50
+ var getDefinitionSchema = function getDefinitionSchema(schemas) {
51
+ var aggregateSchema = {
52
+ definitions: {//
53
+ }
54
+ };
55
+ schemas.forEach(function (schema) {
56
+ schema.definitions = schema.definitions || {};
57
+ aggregateSchema.definitions = _objectSpread(_objectSpread({}, aggregateSchema.definitions), schema.definitions);
58
+ });
59
+ return aggregateSchema;
60
+ };
61
+
62
+ exports.getDefinitionSchema = getDefinitionSchema;
63
+
45
64
  var RenderContext = /*#__PURE__*/function () {
46
- function RenderContext(schema, options) {
65
+ function RenderContext(contract, options) {
47
66
  (0, _classCallCheck2["default"])(this, RenderContext);
48
- (0, _defineProperty2["default"])(this, "schema", void 0);
67
+ (0, _defineProperty2["default"])(this, "contract", void 0);
49
68
  (0, _defineProperty2["default"])(this, "utils", []);
50
- this.schema = schema;
69
+ (0, _defineProperty2["default"])(this, "schema", void 0);
70
+ this.contract = contract;
71
+ this.schema = getDefinitionSchema(contract.schemas);
51
72
  this.options = (0, _deepmerge["default"])(defaultOptions, options !== null && options !== void 0 ? options : {});
52
73
  }
53
74
 
@@ -6,15 +6,13 @@ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../__fixt
6
6
 
7
7
  var _messageComposer = require("./message-composer");
8
8
 
9
- var _context = require("../context");
10
-
11
9
  var _testUtils = require("../../test-utils");
12
10
 
13
11
  it('execute classes', function () {
14
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
12
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
15
13
  (0, _testUtils.expectCode)((0, _messageComposer.createMessageComposerClass)(ctx, 'SG721MessageComposer', 'SG721Message', _execute_msg_for__empty["default"]));
16
14
  });
17
15
  it('createMessageComposerInterface', function () {
18
- var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
16
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
19
17
  (0, _testUtils.expectCode)((0, _messageComposer.createMessageComposerInterface)(ctx, 'SG721Message', _execute_msg_for__empty["default"]));
20
18
  });
@@ -64,7 +64,7 @@ var createReactQueryHooks = function createReactQueryHooks(_ref) {
64
64
 
65
65
  var hookName = "use".concat(hookParamsTypeName); // listVotersResponse
66
66
 
67
- var responseType = (0, _case.pascal)("".concat(methodName, "Response")); // cw3FlexMultisigListVoters
67
+ var responseType = (0, _types2.getResponseType)(context, underscoreName); // cw3FlexMultisigListVoters
68
68
 
69
69
  var getterKey = (0, _case.camel)("".concat(contractName).concat((0, _case.pascal)(methodName)));
70
70
  var jsonschema = schema.properties[underscoreName];
@@ -10,8 +10,6 @@ var _query_msg = _interopRequireDefault(require("../../../../__fixtures__/basic/
10
10
 
11
11
  var _execute_msg_for__empty = _interopRequireDefault(require("../../../../__fixtures__/basic/execute_msg_for__empty.json"));
12
12
 
13
- var _context = require("../context");
14
-
15
13
  var _reactQuery = require("./react-query");
16
14
 
17
15
  var _testUtils = require("../../test-utils");
@@ -20,8 +18,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
20
18
 
21
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; }
22
20
 
23
- var execCtx = new _context.RenderContext(_execute_msg_for__empty["default"]);
24
- var queryCtx = new _context.RenderContext(_query_msg["default"]);
21
+ var execCtx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
22
+ var queryCtx = (0, _testUtils.makeContext)(_query_msg["default"]);
25
23
  it('createReactQueryHooks', function () {
26
24
  (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
27
25
  context: queryCtx,
@@ -30,7 +28,7 @@ it('createReactQueryHooks', function () {
30
28
  QueryClient: 'Sg721QueryClient'
31
29
  })));
32
30
  (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
33
- context: new _context.RenderContext(_query_msg["default"], {
31
+ context: (0, _testUtils.makeContext)(_query_msg["default"], {
34
32
  reactQuery: {
35
33
  optionalClient: true
36
34
  }
@@ -40,7 +38,7 @@ it('createReactQueryHooks', function () {
40
38
  QueryClient: 'Sg721QueryClient'
41
39
  })));
42
40
  (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
43
- context: new _context.RenderContext(_query_msg["default"], {
41
+ context: (0, _testUtils.makeContext)(_query_msg["default"], {
44
42
  reactQuery: {
45
43
  version: 'v4'
46
44
  }
@@ -50,7 +48,7 @@ it('createReactQueryHooks', function () {
50
48
  QueryClient: 'Sg721QueryClient'
51
49
  })));
52
50
  (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
53
- context: new _context.RenderContext(_query_msg["default"], {
51
+ context: (0, _testUtils.makeContext)(_query_msg["default"], {
54
52
  reactQuery: {
55
53
  optionalClient: true,
56
54
  version: 'v4'
@@ -17,10 +17,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
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 createRecoilSelector = function createRecoilSelector(context, keyPrefix, QueryClient, methodName) {
20
+ var createRecoilSelector = function createRecoilSelector(context, keyPrefix, QueryClient, methodName, responseType) {
21
21
  context.addUtil('selectorFamily');
22
22
  var selectorName = (0, _case.camel)("".concat(methodName, "Selector"));
23
- var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
24
23
  var getterKey = (0, _case.camel)("".concat(keyPrefix).concat((0, _case.pascal)(methodName)));
25
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)))]))))])])])))]));
26
25
  };
@@ -31,7 +30,8 @@ var createRecoilSelectors = function createRecoilSelectors(context, keyPrefix, Q
31
30
  return (0, _utils.getMessageProperties)(queryMsg).map(function (schema) {
32
31
  var underscoreName = Object.keys(schema.properties)[0];
33
32
  var methodName = (0, _case.camel)(underscoreName);
34
- return createRecoilSelector(context, keyPrefix, QueryClient, methodName);
33
+ var responseType = (0, _utils.getResponseType)(context, underscoreName);
34
+ return createRecoilSelector(context, keyPrefix, QueryClient, methodName, responseType);
35
35
  });
36
36
  };
37
37
 
@@ -10,17 +10,15 @@ var _query_msg = _interopRequireDefault(require("../../../../__fixtures__/basic/
10
10
 
11
11
  var _recoil = require("./recoil");
12
12
 
13
- var _context = require("../context");
14
-
15
13
  var _testUtils = require("../../test-utils");
16
14
 
17
15
  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
16
 
19
17
  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
18
 
21
- var ctx = new _context.RenderContext(_query_msg["default"]);
19
+ var ctx = (0, _testUtils.makeContext)(_query_msg["default"]);
22
20
  it('selector', function () {
23
- (0, _testUtils.expectCode)((0, _recoil.createRecoilSelector)(ctx, 'SG721', 'SG721QueryClient', 'governanceModules'));
21
+ (0, _testUtils.expectCode)((0, _recoil.createRecoilSelector)(ctx, 'SG721', 'SG721QueryClient', 'governanceModules', 'GovernanceModulesResponse'));
24
22
  });
25
23
  it('selectors', function () {
26
24
  (0, _testUtils.expectCode)(t.program((0, _recoil.createRecoilSelectors)(ctx, 'SG721', 'SG721QueryClient', _query_msg["default"])));
@@ -9,7 +9,9 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.getParamsTypeAnnotation = exports.createTypedObjectParams = void 0;
11
11
  exports.getPropertySignatureFromProp = getPropertySignatureFromProp;
12
- exports.getTypeFromRef = exports.getType = exports.getPropertyType = void 0;
12
+ exports.getPropertyType = void 0;
13
+ exports.getResponseType = getResponseType;
14
+ exports.getTypeFromRef = exports.getType = void 0;
13
15
 
14
16
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
17
 
@@ -27,6 +29,16 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
29
 
28
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
29
31
 
32
+ function getResponseType(context, underscoreName) {
33
+ var _context$contract$res, _context$contract, _context$contract$res2, _context$contract$res3;
34
+
35
+ var methodName = (0, _case.camel)(underscoreName);
36
+ return (0, _case.pascal)((_context$contract$res = (_context$contract = context.contract) === null || _context$contract === void 0 ? void 0 : (_context$contract$res2 = _context$contract.responses) === null || _context$contract$res2 === void 0 ? void 0 : (_context$contract$res3 = _context$contract$res2[underscoreName]) === null || _context$contract$res3 === void 0 ? void 0 : _context$contract$res3.title) !== null && _context$contract$res !== void 0 ? _context$contract$res : // after v1.1 is adopted, we can deprecate this and require the above response
37
+ "".concat(methodName, "Response"));
38
+ }
39
+
40
+ ;
41
+
30
42
  var getTypeStrFromRef = function getTypeStrFromRef($ref) {
31
43
  if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
32
44
  return $ref.replace('#/definitions/', '');
@@ -1,14 +1,14 @@
1
1
  import * as t from '@babel/types';
2
- import { camel, pascal } from 'case';
2
+ import { camel } from 'case';
3
3
  import { bindMethod, typedIdentifier, promiseTypeAnnotation, classDeclaration, classProperty, arrowFunctionExpression, getMessageProperties } from '../utils';
4
- import { getPropertyType, getType, createTypedObjectParams } from '../utils/types';
4
+ import { getPropertyType, getType, createTypedObjectParams, getResponseType } from '../utils/types';
5
5
  import { identifier, propertySignature } from '../utils/babel';
6
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
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
8
  export const createWasmQueryMethod = (context, jsonschema) => {
9
9
  const underscoreName = Object.keys(jsonschema.properties)[0];
10
10
  const methodName = camel(underscoreName);
11
- const responseType = pascal(`${methodName}Response`);
11
+ const responseType = getResponseType(context, underscoreName);
12
12
  const obj = createTypedObjectParams(context, jsonschema.properties[underscoreName]);
13
13
  const args = getWasmMethodArgs(context, jsonschema.properties[underscoreName]);
14
14
  const actionArg = t.objectProperty(t.identifier(underscoreName), t.objectExpression(args));
@@ -113,7 +113,7 @@ export const createQueryInterface = (context, className, queryMsg) => {
113
113
  const methods = getMessageProperties(queryMsg).map(jsonschema => {
114
114
  const underscoreName = Object.keys(jsonschema.properties)[0];
115
115
  const methodName = camel(underscoreName);
116
- const responseType = pascal(`${methodName}Response`);
116
+ const responseType = getResponseType(context, underscoreName);
117
117
  return createPropertyFunctionWithObjectParams(context, methodName, responseType, jsonschema.properties[underscoreName]);
118
118
  });
119
119
  return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), ...methods])));
@@ -1,8 +1,7 @@
1
1
  import message from '../../../../../__fixtures__/misc/schema/arrays-ref.json';
2
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);
3
+ import { expectCode, makeContext } from '../../../test-utils';
4
+ const ctx = makeContext(message);
6
5
  it('execute_msg_for__empty', () => {
7
6
  expectCode(createTypeInterface(ctx, message));
8
7
  });
@@ -1,8 +1,7 @@
1
1
  import message from '../../../../../__fixtures__/misc/schema/arrays.json';
2
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);
3
+ import { expectCode, makeContext } from '../../../test-utils';
4
+ const ctx = makeContext(message);
6
5
  it('execute_msg_for__empty', () => {
7
6
  expectCode(createTypeInterface(ctx, message));
8
7
  });
@@ -1,8 +1,7 @@
1
1
  import execute_msg from '../../../../../__fixtures__/daodao/cw-named-groups/execute_msg.json';
2
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);
3
+ import { expectCode, makeContext } from '../../../test-utils';
4
+ const ctx = makeContext(execute_msg);
6
5
  it('execute_msg', () => {
7
6
  expectCode(createTypeInterface(ctx, execute_msg));
8
7
  });
@@ -1,21 +1,20 @@
1
1
  import execute_msg from '../../../../../__fixtures__/daodao/cw-proposal-single/execute_msg.json';
2
2
  import query_msg from '../../../../../__fixtures__/daodao/cw-proposal-single/query_msg.json';
3
3
  import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
4
- import { RenderContext } from '../../context';
5
- import { expectCode } from '../../../test-utils';
4
+ import { expectCode, makeContext } from '../../../test-utils';
6
5
  it('execute_msg_for', () => {
7
- const ctx = new RenderContext(execute_msg);
6
+ const ctx = makeContext(execute_msg);
8
7
  expectCode(createTypeInterface(ctx, execute_msg));
9
8
  });
10
9
  it('query classes', () => {
11
- const ctx = new RenderContext(query_msg);
10
+ const ctx = makeContext(query_msg);
12
11
  expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', query_msg));
13
12
  });
14
13
  it('execute classes array types', () => {
15
- const ctx = new RenderContext(execute_msg);
14
+ const ctx = makeContext(execute_msg);
16
15
  expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg));
17
16
  });
18
17
  it('execute interfaces no extends', () => {
19
- const ctx = new RenderContext(execute_msg);
18
+ const ctx = makeContext(execute_msg);
20
19
  expectCode(createExecuteInterface(ctx, 'SG721Instance', null, execute_msg));
21
20
  });
@@ -1,8 +1,7 @@
1
1
  import query_msg from '../../../../../__fixtures__/daodao/cw-admin-factory/query_msg.json';
2
2
  import { createQueryClass, createQueryInterface } from '../client';
3
- import { RenderContext } from '../../context';
4
- import { expectCode } from '../../../test-utils';
5
- const ctx = new RenderContext(query_msg);
3
+ import { expectCode, makeContext } from '../../../test-utils';
4
+ const ctx = makeContext(query_msg);
6
5
  it('query classes', () => {
7
6
  expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', query_msg));
8
7
  });
@@ -1,22 +1,21 @@
1
- import { globContracts } from '../../../test-utils';
1
+ import { globContracts, makeContext } from '../../../test-utils';
2
2
  import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
3
- import { RenderContext } from '../../context';
4
3
  import { expectCode } from '../../../test-utils';
5
4
  import cases from 'jest-in-case';
6
5
  const contracts = globContracts('issues/55');
7
6
  cases('execute_msg_for__empty', async opts => {
8
- const ctx = new RenderContext(opts.content);
7
+ const ctx = makeContext(opts.content);
9
8
  expectCode(createTypeInterface(ctx, opts.content));
10
9
  }, contracts);
11
10
  cases('query classes', async opts => {
12
- const ctx = new RenderContext(opts.content);
11
+ const ctx = makeContext(opts.content);
13
12
  expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', opts.content));
14
13
  }, contracts);
15
14
  cases('execute class', async opts => {
16
- const ctx = new RenderContext(opts.content);
15
+ const ctx = makeContext(opts.content);
17
16
  expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, opts.content));
18
17
  }, contracts);
19
18
  cases('execute interface', async opts => {
20
- const ctx = new RenderContext(opts.content);
19
+ const ctx = makeContext(opts.content);
21
20
  expectCode(createExecuteInterface(ctx, 'SG721Instance', null, opts.content));
22
21
  }, contracts);
@@ -1,8 +1,7 @@
1
1
  import execute_msg_for__empty from '../../../../../__fixtures__/sg721/execute_msg_for__empty.json';
2
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);
3
+ import { expectCode, makeContext } from '../../../test-utils';
4
+ const ctx = makeContext(execute_msg_for__empty);
6
5
  it('execute_msg_for__empty', () => {
7
6
  expectCode(createTypeInterface(ctx, execute_msg_for__empty));
8
7
  });
@@ -13,73 +13,72 @@ import operators_response from '../../../../../__fixtures__/basic/operators_resp
13
13
  import owner_of_response from '../../../../../__fixtures__/basic/owner_of_response.json';
14
14
  import tokens_response from '../../../../../__fixtures__/basic/tokens_response.json';
15
15
  import { createQueryClass, createQueryInterface, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
16
- import { RenderContext } from '../../context';
17
- import { expectCode } from '../../../test-utils';
16
+ import { expectCode, makeContext } from '../../../test-utils';
18
17
  it('approval_response', () => {
19
- const ctx = new RenderContext(approval_response);
18
+ const ctx = makeContext(approval_response);
20
19
  expectCode(createTypeInterface(ctx, approval_response));
21
20
  });
22
21
  it('all_nft_info_response', () => {
23
- const ctx = new RenderContext(all_nft_info_response);
22
+ const ctx = makeContext(all_nft_info_response);
24
23
  expectCode(createTypeInterface(ctx, all_nft_info_response));
25
24
  });
26
25
  it('approvals_response', () => {
27
- const ctx = new RenderContext(approvals_response);
26
+ const ctx = makeContext(approvals_response);
28
27
  expectCode(createTypeInterface(ctx, approvals_response));
29
28
  });
30
29
  it('collection_info_response', () => {
31
- const ctx = new RenderContext(collection_info_response);
30
+ const ctx = makeContext(collection_info_response);
32
31
  expectCode(createTypeInterface(ctx, collection_info_response));
33
32
  });
34
33
  it('contract_info_response', () => {
35
- const ctx = new RenderContext(contract_info_response);
34
+ const ctx = makeContext(contract_info_response);
36
35
  expectCode(createTypeInterface(ctx, contract_info_response));
37
36
  });
38
37
  it('instantiate_msg', () => {
39
- const ctx = new RenderContext(instantiate_msg);
38
+ const ctx = makeContext(instantiate_msg);
40
39
  expectCode(createTypeInterface(ctx, instantiate_msg));
41
40
  });
42
41
  it('nft_info_response', () => {
43
- const ctx = new RenderContext(nft_info_response);
42
+ const ctx = makeContext(nft_info_response);
44
43
  expectCode(createTypeInterface(ctx, nft_info_response));
45
44
  });
46
45
  it('num_tokens_response', () => {
47
- const ctx = new RenderContext(num_tokens_response);
46
+ const ctx = makeContext(num_tokens_response);
48
47
  expectCode(createTypeInterface(ctx, num_tokens_response));
49
48
  });
50
49
  it('operators_response', () => {
51
- const ctx = new RenderContext(operators_response);
50
+ const ctx = makeContext(operators_response);
52
51
  expectCode(createTypeInterface(ctx, operators_response));
53
52
  });
54
53
  it('owner_of_response', () => {
55
- const ctx = new RenderContext(owner_of_response);
54
+ const ctx = makeContext(owner_of_response);
56
55
  expectCode(createTypeInterface(ctx, owner_of_response));
57
56
  });
58
57
  it('tokens_response', () => {
59
- const ctx = new RenderContext(tokens_response);
58
+ const ctx = makeContext(tokens_response);
60
59
  expectCode(createTypeInterface(ctx, tokens_response));
61
60
  });
62
61
  it('query classes', () => {
63
- const ctx = new RenderContext(query_msg);
62
+ const ctx = makeContext(query_msg);
64
63
  expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', query_msg));
65
64
  });
66
65
  it('execute classes', () => {
67
- const ctx = new RenderContext(execute_msg);
66
+ const ctx = makeContext(execute_msg);
68
67
  expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', 'SG721QueryClient', execute_msg));
69
68
  });
70
69
  it('execute classes no extends', () => {
71
- const ctx = new RenderContext(execute_msg);
70
+ const ctx = makeContext(execute_msg);
72
71
  expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg));
73
72
  });
74
73
  it('execute classes array types', () => {
75
- const ctx = new RenderContext(execute_msg_named_groups);
74
+ const ctx = makeContext(execute_msg_named_groups);
76
75
  expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg_named_groups));
77
76
  });
78
77
  it('execute interfaces no extends', () => {
79
- const ctx = new RenderContext(execute_msg);
78
+ const ctx = makeContext(execute_msg);
80
79
  expectCode(createExecuteInterface(ctx, 'SG721Instance', null, execute_msg));
81
80
  });
82
81
  it('query interfaces', () => {
83
- const ctx = new RenderContext(query_msg);
82
+ const ctx = makeContext(query_msg);
84
83
  expectCode(createQueryInterface(ctx, 'SG721ReadOnlyInstance', query_msg));
85
84
  });
@@ -4,41 +4,40 @@ import can_execute_relay_response from '../../../../../__fixtures__/vectis/govec
4
4
  import info_response from '../../../../../__fixtures__/vectis/govec/info_response.json';
5
5
  import relay_transaction from '../../../../../__fixtures__/vectis/govec/relay_transaction.json';
6
6
  import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
7
- import { RenderContext } from '../../context';
8
- import { expectCode } from '../../../test-utils';
7
+ import { expectCode, makeContext } from '../../../test-utils';
9
8
  it('cosmos_msg_for__empty', () => {
10
- const ctx = new RenderContext(cosmos_msg_for__empty);
9
+ const ctx = makeContext(cosmos_msg_for__empty);
11
10
  expectCode(createTypeInterface(ctx, cosmos_msg_for__empty));
12
11
  });
13
12
  it('execute_msg_for__empty', () => {
14
- const ctx = new RenderContext(execute_msg_for__empty);
13
+ const ctx = makeContext(execute_msg_for__empty);
15
14
  expectCode(createTypeInterface(ctx, execute_msg_for__empty));
16
15
  });
17
16
  it('can_execute_relay_response', () => {
18
- const ctx = new RenderContext(can_execute_relay_response);
17
+ const ctx = makeContext(can_execute_relay_response);
19
18
  expectCode(createTypeInterface(ctx, can_execute_relay_response));
20
19
  });
21
20
  it('info_response', () => {
22
- const ctx = new RenderContext(info_response);
21
+ const ctx = makeContext(info_response);
23
22
  expectCode(createTypeInterface(ctx, info_response));
24
23
  });
25
24
  it('relay_transaction', () => {
26
- const ctx = new RenderContext(relay_transaction);
25
+ const ctx = makeContext(relay_transaction);
27
26
  expectCode(createTypeInterface(ctx, relay_transaction));
28
27
  });
29
28
  it('query classes', () => {
30
- const ctx = new RenderContext(cosmos_msg_for__empty);
29
+ const ctx = makeContext(cosmos_msg_for__empty);
31
30
  expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', cosmos_msg_for__empty));
32
31
  });
33
32
  it('query classes', () => {
34
- const ctx = new RenderContext(execute_msg_for__empty);
33
+ const ctx = makeContext(execute_msg_for__empty);
35
34
  expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', execute_msg_for__empty));
36
35
  });
37
36
  it('execute classes array types', () => {
38
- const ctx = new RenderContext(execute_msg_for__empty);
37
+ const ctx = makeContext(execute_msg_for__empty);
39
38
  expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg_for__empty));
40
39
  });
41
40
  it('execute interfaces no extends', () => {
42
- const ctx = new RenderContext(execute_msg_for__empty);
41
+ const ctx = makeContext(execute_msg_for__empty);
43
42
  expectCode(createExecuteInterface(ctx, 'SG721Instance', null, execute_msg_for__empty));
44
43
  });
@@ -1,7 +1,13 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
2
7
  import { convertUtilsToImportList, getImportStatements } from "./imports";
3
8
  import deepmerge from "deepmerge"; /// Plugin Types
4
9
 
10
+ ;
5
11
  export const defaultOptions = {
6
12
  types: {
7
13
  enabled: true,
@@ -25,13 +31,27 @@ export const defaultOptions = {
25
31
  queryKeys: false
26
32
  }
27
33
  };
34
+ export const getDefinitionSchema = schemas => {
35
+ const aggregateSchema = {
36
+ definitions: {//
37
+ }
38
+ };
39
+ schemas.forEach(schema => {
40
+ schema.definitions = schema.definitions || {};
41
+ aggregateSchema.definitions = _objectSpread(_objectSpread({}, aggregateSchema.definitions), schema.definitions);
42
+ });
43
+ return aggregateSchema;
44
+ };
28
45
  export class RenderContext {
29
- constructor(schema, options) {
30
- _defineProperty(this, "schema", void 0);
46
+ constructor(contract, options) {
47
+ _defineProperty(this, "contract", void 0);
31
48
 
32
49
  _defineProperty(this, "utils", []);
33
50
 
34
- this.schema = schema;
51
+ _defineProperty(this, "schema", void 0);
52
+
53
+ this.contract = contract;
54
+ this.schema = getDefinitionSchema(contract.schemas);
35
55
  this.options = deepmerge(defaultOptions, options ?? {});
36
56
  }
37
57
 
@@ -1,12 +1,11 @@
1
1
  import execute_msg from '../../../../__fixtures__/basic/execute_msg_for__empty.json';
2
2
  import { createMessageComposerClass, createMessageComposerInterface } from './message-composer';
3
- import { RenderContext } from '../context';
4
- import { expectCode } from '../../test-utils';
3
+ import { expectCode, makeContext } from '../../test-utils';
5
4
  it('execute classes', () => {
6
- const ctx = new RenderContext(execute_msg);
5
+ const ctx = makeContext(execute_msg);
7
6
  expectCode(createMessageComposerClass(ctx, 'SG721MessageComposer', 'SG721Message', execute_msg));
8
7
  });
9
8
  it('createMessageComposerInterface', () => {
10
- const ctx = new RenderContext(execute_msg);
9
+ const ctx = makeContext(execute_msg);
11
10
  expectCode(createMessageComposerInterface(ctx, 'SG721Message', execute_msg));
12
11
  });
@@ -2,7 +2,7 @@ import * as t from '@babel/types';
2
2
  import { camel, pascal } from 'case';
3
3
  import { callExpression, getMessageProperties, identifier, tsObjectPattern, tsPropertySignature } from '../utils';
4
4
  import { omitTypeReference, optionalConditionalExpression, propertySignature, shorthandProperty } from '../utils/babel';
5
- import { getParamsTypeAnnotation, getPropertyType } from '../utils/types';
5
+ import { getParamsTypeAnnotation, getPropertyType, getResponseType } from '../utils/types';
6
6
  import { FIXED_EXECUTE_PARAMS } from '../client';
7
7
  export const createReactQueryHooks = ({
8
8
  context,
@@ -40,7 +40,7 @@ export const createReactQueryHooks = ({
40
40
 
41
41
  const hookName = `use${hookParamsTypeName}`; // listVotersResponse
42
42
 
43
- const responseType = pascal(`${methodName}Response`); // cw3FlexMultisigListVoters
43
+ const responseType = getResponseType(context, underscoreName); // cw3FlexMultisigListVoters
44
44
 
45
45
  const getterKey = camel(`${contractName}${pascal(methodName)}`);
46
46
  const jsonschema = schema.properties[underscoreName];
@@ -1,11 +1,10 @@
1
1
  import * as t from '@babel/types';
2
2
  import query_msg from '../../../../__fixtures__/basic/query_msg.json';
3
3
  import execute_msg from '../../../../__fixtures__/basic/execute_msg_for__empty.json';
4
- import { RenderContext } from '../context';
5
4
  import { createReactQueryHooks, createReactQueryMutationHooks } from './react-query';
6
- import { expectCode } from '../../test-utils';
7
- const execCtx = new RenderContext(execute_msg);
8
- const queryCtx = new RenderContext(query_msg);
5
+ import { expectCode, makeContext } from '../../test-utils';
6
+ const execCtx = makeContext(execute_msg);
7
+ const queryCtx = makeContext(query_msg);
9
8
  it('createReactQueryHooks', () => {
10
9
  expectCode(t.program(createReactQueryHooks({
11
10
  context: queryCtx,
@@ -14,7 +13,7 @@ it('createReactQueryHooks', () => {
14
13
  QueryClient: 'Sg721QueryClient'
15
14
  })));
16
15
  expectCode(t.program(createReactQueryHooks({
17
- context: new RenderContext(query_msg, {
16
+ context: makeContext(query_msg, {
18
17
  reactQuery: {
19
18
  optionalClient: true
20
19
  }
@@ -24,7 +23,7 @@ it('createReactQueryHooks', () => {
24
23
  QueryClient: 'Sg721QueryClient'
25
24
  })));
26
25
  expectCode(t.program(createReactQueryHooks({
27
- context: new RenderContext(query_msg, {
26
+ context: makeContext(query_msg, {
28
27
  reactQuery: {
29
28
  version: 'v4'
30
29
  }
@@ -34,7 +33,7 @@ it('createReactQueryHooks', () => {
34
33
  QueryClient: 'Sg721QueryClient'
35
34
  })));
36
35
  expectCode(t.program(createReactQueryHooks({
37
- context: new RenderContext(query_msg, {
36
+ context: makeContext(query_msg, {
38
37
  reactQuery: {
39
38
  optionalClient: true,
40
39
  version: 'v4'
@@ -1,10 +1,9 @@
1
1
  import * as t from '@babel/types';
2
2
  import { camel, pascal } from 'case';
3
- import { callExpression, getMessageProperties } from '../utils';
4
- export const createRecoilSelector = (context, keyPrefix, QueryClient, methodName) => {
3
+ import { callExpression, getMessageProperties, getResponseType } from '../utils';
4
+ export const createRecoilSelector = (context, keyPrefix, QueryClient, methodName, responseType) => {
5
5
  context.addUtil('selectorFamily');
6
6
  const selectorName = camel(`${methodName}Selector`);
7
- const responseType = pascal(`${methodName}Response`);
8
7
  const getterKey = camel(`${keyPrefix}${pascal(methodName)}`);
9
8
  return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(selectorName), 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)))]))))])])])))]));
10
9
  };
@@ -12,7 +11,8 @@ export const createRecoilSelectors = (context, keyPrefix, QueryClient, queryMsg)
12
11
  return getMessageProperties(queryMsg).map(schema => {
13
12
  const underscoreName = Object.keys(schema.properties)[0];
14
13
  const methodName = camel(underscoreName);
15
- return createRecoilSelector(context, keyPrefix, QueryClient, methodName);
14
+ const responseType = getResponseType(context, underscoreName);
15
+ return createRecoilSelector(context, keyPrefix, QueryClient, methodName, responseType);
16
16
  });
17
17
  };
18
18
  export const createRecoilQueryClientType = () => ({
@@ -1,11 +1,10 @@
1
1
  import * as t from '@babel/types';
2
2
  import query_msg from '../../../../__fixtures__/basic/query_msg.json';
3
3
  import { createRecoilSelector, createRecoilSelectors, createRecoilQueryClient } from './recoil';
4
- import { RenderContext } from '../context';
5
- import { expectCode } from '../../test-utils';
6
- const ctx = new RenderContext(query_msg);
4
+ import { expectCode, makeContext } from '../../test-utils';
5
+ const ctx = makeContext(query_msg);
7
6
  it('selector', () => {
8
- expectCode(createRecoilSelector(ctx, 'SG721', 'SG721QueryClient', 'governanceModules'));
7
+ expectCode(createRecoilSelector(ctx, 'SG721', 'SG721QueryClient', 'governanceModules', 'GovernanceModulesResponse'));
9
8
  });
10
9
  it('selectors', () => {
11
10
  expectCode(t.program(createRecoilSelectors(ctx, 'SG721', 'SG721QueryClient', query_msg)));
@@ -1,6 +1,12 @@
1
1
  import * as t from '@babel/types';
2
- import { camel } from 'case';
2
+ import { camel, pascal } from 'case';
3
3
  import { propertySignature } from './babel';
4
+ export function getResponseType(context, underscoreName) {
5
+ const methodName = camel(underscoreName);
6
+ return pascal(context.contract?.responses?.[underscoreName]?.title ?? // after v1.1 is adopted, we can deprecate this and require the above response
7
+ `${methodName}Response`);
8
+ }
9
+ ;
4
10
 
5
11
  const getTypeStrFromRef = $ref => {
6
12
  if ($ref?.startsWith('#/definitions/')) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wasm-ast-types",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "CosmWasm TypeScript AST generation",
5
5
  "author": "Dan Lynch <pyramation@gmail.com>",
6
6
  "homepage": "https://github.com/pyramation/cosmwasm-typescript-gen/tree/master/packages/wasm-ast-types#readme",
@@ -86,5 +86,5 @@
86
86
  "case": "1.6.3",
87
87
  "deepmerge": "4.2.2"
88
88
  },
89
- "gitHead": "3b7ca02c9283c346a365d8426d3034af355afcac"
89
+ "gitHead": "94c5785d947e329df1cc9108cc33bb7a0c21af60"
90
90
  }
@@ -20,6 +20,25 @@ export interface TSTypesOptions {
20
20
  enabled?: boolean;
21
21
  aliasExecuteMsg?: boolean;
22
22
  }
23
+ interface KeyedSchema {
24
+ [key: string]: JSONSchema;
25
+ }
26
+ export interface IDLObject {
27
+ contract_name: string;
28
+ contract_version: string;
29
+ idl_version: string;
30
+ instantiate: JSONSchema;
31
+ execute: JSONSchema;
32
+ query: JSONSchema;
33
+ migrate: JSONSchema;
34
+ sudo: JSONSchema;
35
+ responses: KeyedSchema;
36
+ }
37
+ export interface ContractInfo {
38
+ schemas: JSONSchema[];
39
+ responses?: Record<string, JSONSchema>;
40
+ idlObject?: IDLObject;
41
+ }
23
42
  export interface RenderOptions {
24
43
  types?: TSTypesOptions;
25
44
  recoil?: RecoilOptions;
@@ -28,15 +47,18 @@ export interface RenderOptions {
28
47
  reactQuery?: ReactQueryOptions;
29
48
  }
30
49
  export interface RenderContext {
31
- schema: JSONSchema;
50
+ contract: ContractInfo;
32
51
  options: RenderOptions;
33
52
  }
34
53
  export declare const defaultOptions: RenderOptions;
54
+ export declare const getDefinitionSchema: (schemas: JSONSchema[]) => JSONSchema;
35
55
  export declare class RenderContext implements RenderContext {
36
- schema: JSONSchema;
56
+ contract: ContractInfo;
37
57
  utils: string[];
38
- constructor(schema: JSONSchema, options?: RenderOptions);
58
+ schema: JSONSchema;
59
+ constructor(contract: ContractInfo, options?: RenderOptions);
39
60
  refLookup($ref: string): JSONSchema;
40
61
  addUtil(util: string): void;
41
62
  getImports(): any[];
42
63
  }
64
+ export {};
@@ -7,6 +7,7 @@ interface ReactQueryHookQuery {
7
7
  hookName: string;
8
8
  hookParamsTypeName: string;
9
9
  hookKeyName: string;
10
+ queryKeysName: string;
10
11
  responseType: string;
11
12
  methodName: string;
12
13
  jsonschema: any;
@@ -17,8 +18,8 @@ interface ReactQueryHooks {
17
18
  contractName: string;
18
19
  QueryClient: string;
19
20
  }
20
- export declare const createReactQueryHooks: ({ context, queryMsg, contractName, QueryClient }: ReactQueryHooks) => t.ExportNamedDeclaration[];
21
- export declare const createReactQueryHook: ({ context, hookName, hookParamsTypeName, responseType, hookKeyName, methodName, jsonschema }: ReactQueryHookQuery) => t.ExportNamedDeclaration;
21
+ export declare const createReactQueryHooks: ({ context, queryMsg, contractName, QueryClient }: ReactQueryHooks) => any[];
22
+ export declare const createReactQueryHook: ({ context, hookName, hookParamsTypeName, responseType, hookKeyName, queryKeysName, methodName, jsonschema }: ReactQueryHookQuery) => t.ExportNamedDeclaration;
22
23
  interface ReactQueryMutationHookInterface {
23
24
  context: RenderContext;
24
25
  ExecuteClient: string;
@@ -1,7 +1,7 @@
1
1
  import * as t from '@babel/types';
2
2
  import { QueryMsg } from '../types';
3
3
  import { RenderContext } from '../context';
4
- export declare const createRecoilSelector: (context: RenderContext, keyPrefix: string, QueryClient: string, methodName: string) => t.ExportNamedDeclaration;
4
+ export declare const createRecoilSelector: (context: RenderContext, keyPrefix: string, QueryClient: string, methodName: string, responseType: string) => t.ExportNamedDeclaration;
5
5
  export declare const createRecoilSelectors: (context: RenderContext, keyPrefix: string, QueryClient: string, queryMsg: QueryMsg) => any;
6
6
  export declare const createRecoilQueryClientType: () => {
7
7
  type: string;
@@ -2,6 +2,7 @@ import * as t from '@babel/types';
2
2
  import { TSTypeAnnotation } from '@babel/types';
3
3
  import { RenderContext } from '../context';
4
4
  import { JSONSchema } from '../types';
5
+ export declare function getResponseType(context: RenderContext, underscoreName: string): string;
5
6
  export declare const getTypeFromRef: ($ref: any) => t.TSTypeReference;
6
7
  export declare const getType: (type: any) => t.TSBooleanKeyword | t.TSNumberKeyword | t.TSStringKeyword;
7
8
  export declare const getPropertyType: (context: RenderContext, schema: JSONSchema, prop: string) => {