wasm-ast-types 0.4.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/README.md +129 -0
  2. package/main/{wasm.js → client/client.js} +56 -40
  3. package/main/client/index.js +18 -0
  4. package/main/client/test/ts-client.arrays.spec.js +25 -0
  5. package/main/client/test/ts-client.cw-named-groups.test.js +25 -0
  6. package/main/client/test/ts-client.cw-proposal-single.test.js +30 -0
  7. package/main/client/test/ts-client.empty-enums.spec.js +19 -0
  8. package/main/client/test/ts-client.sg721.spec.js +25 -0
  9. package/main/client/test/ts-client.spec.js +106 -0
  10. package/main/client/test/ts-client.vectis.spec.js +56 -0
  11. package/main/context/context.js +48 -0
  12. package/main/context/index.js +18 -0
  13. package/main/{messages.js → from-partial/from-partial.js} +17 -60
  14. package/main/from-partial/from-partial.spec.js +20 -0
  15. package/main/from-partial/index.js +18 -0
  16. package/main/index.js +34 -8
  17. package/main/react-query/index.js +18 -0
  18. package/main/react-query/react-query.js +267 -0
  19. package/main/{react-query.spec.js → react-query/react-query.spec.js} +36 -39
  20. package/main/recoil/index.js +18 -0
  21. package/main/{recoil.js → recoil/recoil.js} +7 -26
  22. package/main/{recoil.spec.js → recoil/recoil.spec.js} +9 -14
  23. package/main/utils/babel.js +28 -2
  24. package/main/utils/babel.spec.js +7 -15
  25. package/main/utils/index.js +13 -0
  26. package/main/utils/types.js +100 -78
  27. package/module/{wasm.js → client/client.js} +45 -35
  28. package/module/client/index.js +1 -0
  29. package/module/client/test/ts-client.arrays.spec.js +17 -0
  30. package/module/client/test/ts-client.cw-named-groups.test.js +17 -0
  31. package/module/client/test/ts-client.cw-proposal-single.test.js +21 -0
  32. package/module/client/test/ts-client.empty-enums.spec.js +11 -0
  33. package/module/client/test/ts-client.sg721.spec.js +17 -0
  34. package/module/client/test/ts-client.spec.js +85 -0
  35. package/module/client/test/ts-client.vectis.spec.js +44 -0
  36. package/module/context/context.js +25 -0
  37. package/module/context/index.js +1 -0
  38. package/module/{messages.js → from-partial/from-partial.js} +16 -57
  39. package/module/from-partial/from-partial.spec.js +12 -0
  40. package/module/from-partial/index.js +1 -0
  41. package/module/index.js +5 -3
  42. package/module/react-query/index.js +1 -0
  43. package/module/react-query/react-query.js +222 -0
  44. package/module/react-query/react-query.spec.js +53 -0
  45. package/module/recoil/index.js +1 -0
  46. package/module/{recoil.js → recoil/recoil.js} +6 -20
  47. package/module/recoil/recoil.spec.js +15 -0
  48. package/module/utils/babel.js +15 -0
  49. package/module/utils/babel.spec.js +1 -10
  50. package/module/utils/index.js +2 -1
  51. package/module/utils/types.js +83 -74
  52. package/package.json +26 -24
  53. package/types/src/client/client.d.ts +17 -0
  54. package/types/src/client/index.d.ts +1 -0
  55. package/types/src/client/test/ts-client.cw-named-groups.test.d.ts +1 -0
  56. package/types/src/client/test/ts-client.cw-proposal-single.test.d.ts +1 -0
  57. package/types/src/context/context.d.ts +20 -0
  58. package/types/src/context/index.d.ts +1 -0
  59. package/types/src/from-partial/from-partial.d.ts +4 -0
  60. package/types/src/from-partial/index.d.ts +1 -0
  61. package/types/src/index.d.ts +7 -0
  62. package/types/src/react-query/index.d.ts +1 -0
  63. package/types/src/react-query/react-query.d.ts +81 -0
  64. package/types/src/recoil/index.d.ts +1 -0
  65. package/types/{recoil.d.ts → src/recoil/recoil.d.ts} +5 -5
  66. package/types/{types.d.ts → src/types.d.ts} +17 -0
  67. package/types/{utils.d.ts → src/utils/babel.d.ts} +21 -1
  68. package/types/src/utils/index.d.ts +2 -0
  69. package/types/src/utils/types.d.ts +18 -0
  70. package/types/test-utils/index.d.ts +2 -0
  71. package/main/messages.spec.js +0 -24
  72. package/main/react-query.js +0 -155
  73. package/main/wasm.arrays.spec.js +0 -30
  74. package/main/wasm.cw-named-groups.test.js +0 -30
  75. package/main/wasm.cw-proposal-single.test.js +0 -32
  76. package/main/wasm.empty-enums.spec.js +0 -24
  77. package/main/wasm.sg721.spec.js +0 -30
  78. package/main/wasm.spec.js +0 -95
  79. package/main/wasm.vectis.spec.js +0 -53
  80. package/module/messages.spec.js +0 -18
  81. package/module/react-query.js +0 -120
  82. package/module/react-query.spec.js +0 -59
  83. package/module/recoil.spec.js +0 -22
  84. package/module/wasm.arrays.spec.js +0 -24
  85. package/module/wasm.cw-named-groups.test.js +0 -24
  86. package/module/wasm.cw-proposal-single.test.js +0 -25
  87. package/module/wasm.empty-enums.spec.js +0 -18
  88. package/module/wasm.sg721.spec.js +0 -24
  89. package/module/wasm.spec.js +0 -76
  90. package/module/wasm.vectis.spec.js +0 -43
  91. package/types/amino/amino-interfaces.d.ts +0 -6
  92. package/types/amino/from-amino.d.ts +0 -13
  93. package/types/amino/index.d.ts +0 -3
  94. package/types/amino/to-amino.d.ts +0 -11
  95. package/types/index.d.ts +0 -5
  96. package/types/messages.d.ts +0 -4
  97. package/types/react-query.d.ts +0 -32
  98. package/types/wasm.d.ts +0 -24
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _cosmos_msg_for__empty = _interopRequireDefault(require("../../../../../__fixtures__/vectis/govec/cosmos_msg_for__empty.json"));
6
+
7
+ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../../__fixtures__/vectis/govec/execute_msg_for__empty.json"));
8
+
9
+ var _can_execute_relay_response = _interopRequireDefault(require("../../../../../__fixtures__/vectis/govec/can_execute_relay_response.json"));
10
+
11
+ var _info_response = _interopRequireDefault(require("../../../../../__fixtures__/vectis/govec/info_response.json"));
12
+
13
+ var _relay_transaction = _interopRequireDefault(require("../../../../../__fixtures__/vectis/govec/relay_transaction.json"));
14
+
15
+ var _client = require("../client");
16
+
17
+ var _context = require("../../context");
18
+
19
+ var _testUtils = require("../../../test-utils");
20
+
21
+ it('cosmos_msg_for__empty', function () {
22
+ var ctx = new _context.RenderContext(_cosmos_msg_for__empty["default"]);
23
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _cosmos_msg_for__empty["default"]));
24
+ });
25
+ it('execute_msg_for__empty', function () {
26
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
27
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg_for__empty["default"]));
28
+ });
29
+ it('can_execute_relay_response', function () {
30
+ var ctx = new _context.RenderContext(_can_execute_relay_response["default"]);
31
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _can_execute_relay_response["default"]));
32
+ });
33
+ it('info_response', function () {
34
+ var ctx = new _context.RenderContext(_info_response["default"]);
35
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _info_response["default"]));
36
+ });
37
+ it('relay_transaction', function () {
38
+ var ctx = new _context.RenderContext(_relay_transaction["default"]);
39
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _relay_transaction["default"]));
40
+ });
41
+ it('query classes', function () {
42
+ var ctx = new _context.RenderContext(_cosmos_msg_for__empty["default"]);
43
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _cosmos_msg_for__empty["default"]));
44
+ });
45
+ it('query classes', function () {
46
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
47
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _execute_msg_for__empty["default"]));
48
+ });
49
+ it('execute classes array types', function () {
50
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
51
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
52
+ });
53
+ it('execute interfaces no extends', function () {
54
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
55
+ (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg_for__empty["default"]));
56
+ });
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.defaultOptions = exports.RenderContext = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _deepmerge = _interopRequireDefault(require("deepmerge"));
17
+
18
+ var defaultOptions = {
19
+ reactQuery: {
20
+ optionalClient: false,
21
+ v4: false,
22
+ mutations: false,
23
+ camelize: true
24
+ }
25
+ };
26
+ exports.defaultOptions = defaultOptions;
27
+
28
+ var RenderContext = /*#__PURE__*/function () {
29
+ function RenderContext(schema, options) {
30
+ (0, _classCallCheck2["default"])(this, RenderContext);
31
+ (0, _defineProperty2["default"])(this, "schema", void 0);
32
+ this.schema = schema;
33
+ this.options = (0, _deepmerge["default"])(defaultOptions, options !== null && options !== void 0 ? options : {});
34
+ }
35
+
36
+ (0, _createClass2["default"])(RenderContext, [{
37
+ key: "refLookup",
38
+ value: function refLookup($ref) {
39
+ var _this$schema$definiti;
40
+
41
+ var refName = $ref.replace('#/definitions/', '');
42
+ return (_this$schema$definiti = this.schema.definitions) === null || _this$schema$definiti === void 0 ? void 0 : _this$schema$definiti[refName];
43
+ }
44
+ }]);
45
+ return RenderContext;
46
+ }();
47
+
48
+ exports.RenderContext = RenderContext;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _context = require("./context");
8
+
9
+ Object.keys(_context).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _context[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _context[key];
16
+ }
17
+ });
18
+ });
@@ -15,56 +15,30 @@ var t = _interopRequireWildcard(require("@babel/types"));
15
15
 
16
16
  var _case = require("case");
17
17
 
18
- var _utils = require("./utils");
18
+ var _utils = require("../utils");
19
19
 
20
- var _types2 = require("./utils/types");
20
+ var _types2 = require("../utils/types");
21
21
 
22
- var _babel = require("./utils/babel");
22
+ var _babel = require("../utils/babel");
23
+
24
+ var _client = require("../client/client");
23
25
 
24
26
  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); }
25
27
 
26
28
  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
29
 
28
- var createWasmExecMethodPartial = function createWasmExecMethodPartial(jsonschema) {
29
- var _jsonschema$propertie;
30
-
30
+ var createWasmExecMethodPartial = function createWasmExecMethodPartial(context, jsonschema) {
31
31
  var underscoreName = Object.keys(jsonschema.properties)[0];
32
32
  var methodName = (0, _case.camel)(underscoreName);
33
- var properties = (_jsonschema$propertie = jsonschema.properties[underscoreName].properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {};
34
- var obj = (0, _types2.createTypedObjectParams)(jsonschema.properties[underscoreName]);
35
- var args = Object.keys(properties).map(function (prop) {
36
- return t.objectProperty(t.identifier(prop), t.identifier((0, _case.camel)(prop)), false, prop === (0, _case.camel)(prop));
37
- });
38
- var constantParams = [// t.assignmentPattern(
39
- // identifier(
40
- // 'fee',
41
- // t.tsTypeAnnotation(
42
- // t.tsUnionType(
43
- // [
44
- // t.tSNumberKeyword(),
45
- // t.tsTypeReference(
46
- // t.identifier('StdFee')
47
- // ),
48
- // t.tsLiteralType(
49
- // t.stringLiteral('auto')
50
- // )
51
- // ]
52
- // )
53
- // ),
54
- // false
55
- // ),
56
- // t.stringLiteral('auto')
57
- // ),
58
- // identifier('memo', t.tsTypeAnnotation(
59
- // t.tsStringKeyword()
60
- // ), true),
61
- (0, _babel.identifier)('funds', t.tsTypeAnnotation((0, _babel.tsTypeOperator)(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
33
+ var obj = (0, _types2.createTypedObjectParams)(context, jsonschema.properties[underscoreName]);
34
+ var args = (0, _client.getWasmMethodArgs)(context, jsonschema.properties[underscoreName]);
35
+ var constantParams = [(0, _babel.identifier)('funds', t.tsTypeAnnotation(t.tsArrayType(t.tsTypeReference(t.identifier('Coin')))), true)];
62
36
  return t.classProperty(t.identifier(methodName), (0, _utils.arrowFunctionExpression)(obj ? [// props
63
37
  obj].concat(constantParams) : constantParams, t.blockStatement([t.returnStatement(t.objectExpression([t.objectProperty(t.identifier('typeUrl'), t.stringLiteral('/cosmwasm.wasm.v1.MsgExecuteContract')), t.objectProperty(t.identifier('value'), t.callExpression(t.memberExpression(t.identifier('MsgExecuteContract'), t.identifier('fromPartial')), [t.objectExpression([t.objectProperty(t.identifier('sender'), t.memberExpression(t.thisExpression(), t.identifier('sender'))), t.objectProperty(t.identifier('contract'), t.memberExpression(t.thisExpression(), t.identifier('contractAddress'))), t.objectProperty(t.identifier('msg'), t.callExpression(t.identifier('toUtf8'), [t.callExpression(t.memberExpression(t.identifier('JSON'), t.identifier('stringify')), [t.objectExpression([t.objectProperty(t.identifier(underscoreName), t.objectExpression(args))])])])), t.objectProperty(t.identifier('funds'), t.identifier('funds'), false, true)])]))]))]), // return type
64
38
  t.tsTypeAnnotation(t.tsTypeReference(t.identifier('MsgExecuteContractEncodeObject'))), false));
65
39
  };
66
40
 
67
- var createFromPartialClass = function createFromPartialClass(className, implementsClassName, execMsg) {
41
+ var createFromPartialClass = function createFromPartialClass(context, className, implementsClassName, execMsg) {
68
42
  var propertyNames = (0, _utils.getMessageProperties)(execMsg).map(function (method) {
69
43
  var _Object$keys;
70
44
 
@@ -72,7 +46,7 @@ var createFromPartialClass = function createFromPartialClass(className, implemen
72
46
  }).filter(Boolean);
73
47
  var bindings = propertyNames.map(_case.camel).map(_utils.bindMethod);
74
48
  var methods = (0, _utils.getMessageProperties)(execMsg).map(function (schema) {
75
- return createWasmExecMethodPartial(schema);
49
+ return createWasmExecMethodPartial(context, schema);
76
50
  });
77
51
  var blockStmt = [];
78
52
  [].push.apply(blockStmt, [t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('sender')), t.identifier('sender'))), t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.identifier('contractAddress')))].concat((0, _toConsumableArray2["default"])(bindings)));
@@ -84,40 +58,23 @@ var createFromPartialClass = function createFromPartialClass(className, implemen
84
58
 
85
59
  exports.createFromPartialClass = createFromPartialClass;
86
60
 
87
- var createFromPartialInterface = function createFromPartialInterface(className, execMsg) {
61
+ var createFromPartialInterface = function createFromPartialInterface(context, className, execMsg) {
88
62
  var methods = (0, _utils.getMessageProperties)(execMsg).map(function (jsonschema) {
89
63
  var underscoreName = Object.keys(jsonschema.properties)[0];
90
64
  var methodName = (0, _case.camel)(underscoreName);
91
- return createPropertyFunctionWithObjectParamsForPartial(methodName, 'MsgExecuteContractEncodeObject', jsonschema.properties[underscoreName]);
65
+ return createPropertyFunctionWithObjectParamsForPartial(context, methodName, 'MsgExecuteContractEncodeObject', jsonschema.properties[underscoreName]);
92
66
  });
93
67
  var extendsAst = [];
94
68
  return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, extendsAst, t.tSInterfaceBody([// contract address
95
69
  t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // contract address
96
70
  t.tSPropertySignature(t.identifier('sender'), t.tsTypeAnnotation(t.tsStringKeyword()))].concat((0, _toConsumableArray2["default"])(methods)))));
97
- }; // MARKED AS NOT DRY
98
-
71
+ };
99
72
 
100
73
  exports.createFromPartialInterface = createFromPartialInterface;
101
74
 
102
- var createPropertyFunctionWithObjectParamsForPartial = function createPropertyFunctionWithObjectParamsForPartial(methodName, responseType, jsonschema) {
103
- var obj = (0, _types2.createTypedObjectParams)(jsonschema);
104
- var fixedParams = [// identifier('fee', t.tsTypeAnnotation(
105
- // t.tsUnionType(
106
- // [
107
- // t.tsNumberKeyword(),
108
- // t.tsTypeReference(
109
- // t.identifier('StdFee')
110
- // ),
111
- // t.tsLiteralType(
112
- // t.stringLiteral('auto')
113
- // )
114
- // ]
115
- // )
116
- // ), true),
117
- // identifier('memo', t.tsTypeAnnotation(
118
- // t.tsStringKeyword()
119
- // ), true),
120
- (0, _babel.identifier)('funds', t.tsTypeAnnotation((0, _babel.tsTypeOperator)(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
75
+ var createPropertyFunctionWithObjectParamsForPartial = function createPropertyFunctionWithObjectParamsForPartial(context, methodName, responseType, jsonschema) {
76
+ var obj = (0, _types2.createTypedObjectParams)(context, jsonschema);
77
+ var fixedParams = [(0, _babel.identifier)('funds', t.tsTypeAnnotation(t.tsArrayType(t.tsTypeReference(t.identifier('Coin')))), true)];
121
78
  var func = {
122
79
  type: 'TSFunctionType',
123
80
  typeAnnotation: t.tsTypeAnnotation(t.tsTypeReference(t.identifier(responseType))),
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../__fixtures__/basic/execute_msg_for__empty.json"));
6
+
7
+ var _fromPartial = require("./from-partial");
8
+
9
+ var _context = require("../context");
10
+
11
+ var _testUtils = require("../../test-utils");
12
+
13
+ it('execute classes', function () {
14
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
15
+ (0, _testUtils.expectCode)((0, _fromPartial.createFromPartialClass)(ctx, 'SG721MessageComposer', 'SG721Message', _execute_msg_for__empty["default"]));
16
+ });
17
+ it('createFromPartialInterface', function () {
18
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
19
+ (0, _testUtils.expectCode)((0, _fromPartial.createFromPartialInterface)(ctx, 'SG721Message', _execute_msg_for__empty["default"]));
20
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _fromPartial = require("./from-partial");
8
+
9
+ Object.keys(_fromPartial).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _fromPartial[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _fromPartial[key];
16
+ }
17
+ });
18
+ });
package/main/index.js CHANGED
@@ -17,15 +17,28 @@ Object.keys(_utils).forEach(function (key) {
17
17
  });
18
18
  });
19
19
 
20
- var _wasm = require("./wasm");
20
+ var _client = require("./client");
21
21
 
22
- Object.keys(_wasm).forEach(function (key) {
22
+ Object.keys(_client).forEach(function (key) {
23
23
  if (key === "default" || key === "__esModule") return;
24
- if (key in exports && exports[key] === _wasm[key]) return;
24
+ if (key in exports && exports[key] === _client[key]) return;
25
25
  Object.defineProperty(exports, key, {
26
26
  enumerable: true,
27
27
  get: function get() {
28
- return _wasm[key];
28
+ return _client[key];
29
+ }
30
+ });
31
+ });
32
+
33
+ var _context = require("./context");
34
+
35
+ Object.keys(_context).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _context[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _context[key];
29
42
  }
30
43
  });
31
44
  });
@@ -43,15 +56,15 @@ Object.keys(_recoil).forEach(function (key) {
43
56
  });
44
57
  });
45
58
 
46
- var _messages = require("./messages");
59
+ var _fromPartial = require("./from-partial");
47
60
 
48
- Object.keys(_messages).forEach(function (key) {
61
+ Object.keys(_fromPartial).forEach(function (key) {
49
62
  if (key === "default" || key === "__esModule") return;
50
- if (key in exports && exports[key] === _messages[key]) return;
63
+ if (key in exports && exports[key] === _fromPartial[key]) return;
51
64
  Object.defineProperty(exports, key, {
52
65
  enumerable: true,
53
66
  get: function get() {
54
- return _messages[key];
67
+ return _fromPartial[key];
55
68
  }
56
69
  });
57
70
  });
@@ -67,4 +80,17 @@ Object.keys(_reactQuery).forEach(function (key) {
67
80
  return _reactQuery[key];
68
81
  }
69
82
  });
83
+ });
84
+
85
+ var _types = require("./types");
86
+
87
+ Object.keys(_types).forEach(function (key) {
88
+ if (key === "default" || key === "__esModule") return;
89
+ if (key in exports && exports[key] === _types[key]) return;
90
+ Object.defineProperty(exports, key, {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _types[key];
94
+ }
95
+ });
70
96
  });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _reactQuery = require("./react-query");
8
+
9
+ Object.keys(_reactQuery).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _reactQuery[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _reactQuery[key];
16
+ }
17
+ });
18
+ });
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.createReactQueryMutationHooks = exports.createReactQueryMutationHook = exports.createReactQueryMutationArgsInterface = exports.createReactQueryHooks = exports.createReactQueryHookInterface = exports.createReactQueryHook = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var t = _interopRequireWildcard(require("@babel/types"));
15
+
16
+ var _case = require("case");
17
+
18
+ var _utils = require("../utils");
19
+
20
+ var _babel = require("../utils/babel");
21
+
22
+ var _types2 = require("../utils/types");
23
+
24
+ var _client = require("../client");
25
+
26
+ 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); }
27
+
28
+ 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; }
29
+
30
+ var createReactQueryHooks = function createReactQueryHooks(_ref) {
31
+ var context = _ref.context,
32
+ queryMsg = _ref.queryMsg,
33
+ contractName = _ref.contractName,
34
+ QueryClient = _ref.QueryClient;
35
+ var options = context.options.reactQuery;
36
+ return (0, _utils.getMessageProperties)(queryMsg).reduce(function (m, schema) {
37
+ var underscoreName = Object.keys(schema.properties)[0];
38
+ var methodName = (0, _case.camel)(underscoreName);
39
+ var hookName = "use".concat((0, _case.pascal)(contractName)).concat((0, _case.pascal)(methodName), "Query");
40
+ var hookParamsTypeName = "".concat((0, _case.pascal)(contractName)).concat((0, _case.pascal)(methodName), "Query");
41
+ var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
42
+ var getterKey = (0, _case.camel)("".concat(contractName).concat((0, _case.pascal)(methodName)));
43
+ var jsonschema = schema.properties[underscoreName];
44
+ return [createReactQueryHookInterface({
45
+ context: context,
46
+ hookParamsTypeName: hookParamsTypeName,
47
+ responseType: responseType,
48
+ QueryClient: QueryClient,
49
+ jsonschema: jsonschema,
50
+ options: options
51
+ }), createReactQueryHook({
52
+ context: context,
53
+ methodName: methodName,
54
+ hookName: hookName,
55
+ hookParamsTypeName: hookParamsTypeName,
56
+ responseType: responseType,
57
+ hookKeyName: getterKey,
58
+ jsonschema: jsonschema
59
+ })].concat((0, _toConsumableArray2["default"])(m));
60
+ }, []);
61
+ };
62
+
63
+ exports.createReactQueryHooks = createReactQueryHooks;
64
+
65
+ var createReactQueryHook = function createReactQueryHook(_ref2) {
66
+ var _jsonschema$propertie;
67
+
68
+ var context = _ref2.context,
69
+ hookName = _ref2.hookName,
70
+ hookParamsTypeName = _ref2.hookParamsTypeName,
71
+ responseType = _ref2.responseType,
72
+ hookKeyName = _ref2.hookKeyName,
73
+ methodName = _ref2.methodName,
74
+ jsonschema = _ref2.jsonschema;
75
+ var options = context.options.reactQuery;
76
+ var keys = Object.keys((_jsonschema$propertie = jsonschema.properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {});
77
+ var args = [];
78
+
79
+ if (keys.length) {
80
+ args = [t.objectExpression((0, _toConsumableArray2["default"])(keys.map(function (prop) {
81
+ return t.objectProperty(t.identifier((0, _case.camel)(prop)), t.memberExpression(t.identifier('args'), t.identifier((0, _case.camel)(prop))));
82
+ })))];
83
+ }
84
+
85
+ var props = ['client', 'options'];
86
+
87
+ if (keys.length) {
88
+ props = ['client', 'args', 'options'];
89
+ }
90
+
91
+ return t.exportNamedDeclaration(t.functionDeclaration(t.identifier(hookName), [(0, _utils.tsObjectPattern)((0, _toConsumableArray2["default"])(props.map(function (prop) {
92
+ return t.objectProperty(t.identifier(prop), t.identifier(prop), false, true);
93
+ })), t.tsTypeAnnotation(t.tsTypeReference(t.identifier(hookParamsTypeName))))], t.blockStatement([t.returnStatement((0, _utils.callExpression)(t.identifier('useQuery'), [t.arrayExpression(generateUseQueryQueryKey(hookKeyName, props, options.optionalClient)), t.arrowFunctionExpression([], (0, _babel.optionalConditionalExpression)(t.identifier('client'), t.callExpression(t.memberExpression(t.identifier('client'), t.identifier(methodName)), args), t.identifier('undefined'), options.optionalClient), false), options.optionalClient ? t.objectExpression([t.spreadElement(t.identifier('options')), t.objectProperty(t.identifier('enabled'), t.logicalExpression('&&', t.unaryExpression('!', t.unaryExpression('!', t.identifier('client'))), t.conditionalExpression( // explicitly check for undefined
94
+ t.binaryExpression('!=', t.optionalMemberExpression(t.identifier('options'), t.identifier('enabled'), false, true), t.identifier('undefined')), t.memberExpression(t.identifier('options'), t.identifier('enabled')), t.booleanLiteral(true))))]) : t.identifier('options')], t.tsTypeParameterInstantiation([(0, _babel.typeRefOrOptionalUnion)(t.identifier(responseType), options.optionalClient), t.tsTypeReference(t.identifier('Error')), t.tsTypeReference(t.identifier(responseType)), t.tsArrayType(t.tsParenthesizedType(t.tsUnionType([t.tsStringKeyword(), t.tsUndefinedKeyword()])))])))])));
95
+ };
96
+
97
+ exports.createReactQueryHook = createReactQueryHook;
98
+
99
+ /**
100
+ * Example:
101
+ ```
102
+ export interface Cw4UpdateMembersMutation {
103
+ client: Cw4GroupClient
104
+ args: {
105
+ tokenId: string
106
+ remove: string[]
107
+ }
108
+ options?: Omit<
109
+ UseMutationOptions<ExecuteResult, Error, Pick<Cw4UpdateMembersMutation, 'args'>>,
110
+ 'mutationFn'
111
+ >
112
+ }
113
+ ```
114
+ */
115
+ var createReactQueryMutationArgsInterface = function createReactQueryMutationArgsInterface(_ref3) {
116
+ var context = _ref3.context,
117
+ ExecuteClient = _ref3.ExecuteClient,
118
+ mutationHookParamsTypeName = _ref3.mutationHookParamsTypeName,
119
+ useMutationTypeParameter = _ref3.useMutationTypeParameter,
120
+ jsonschema = _ref3.jsonschema;
121
+ var typedUseMutationOptions = t.tsTypeReference(t.identifier('UseMutationOptions'), useMutationTypeParameter);
122
+ var body = [(0, _utils.tsPropertySignature)(t.identifier('client'), t.tsTypeAnnotation(t.tsTypeReference(t.identifier(ExecuteClient))), false)];
123
+ var msgType = (0, _types2.getParamsTypeAnnotation)(context, jsonschema);
124
+
125
+ if (msgType) {
126
+ body.push(t.tsPropertySignature(t.identifier('msg'), msgType));
127
+ } // fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]
128
+
129
+
130
+ var optionalArgs = t.tsPropertySignature(t.identifier('args'), t.tsTypeAnnotation(t.tsTypeLiteral(_client.FIXED_EXECUTE_PARAMS.map(function (param) {
131
+ return (0, _babel.propertySignature)(param.name, param.typeAnnotation, param.optional);
132
+ }))));
133
+ optionalArgs.optional = true;
134
+ body.push(optionalArgs);
135
+ return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(mutationHookParamsTypeName), null, [], t.tsInterfaceBody(body)));
136
+ };
137
+
138
+ exports.createReactQueryMutationArgsInterface = createReactQueryMutationArgsInterface;
139
+
140
+ var createReactQueryMutationHooks = function createReactQueryMutationHooks(_ref4) {
141
+ var context = _ref4.context,
142
+ execMsg = _ref4.execMsg,
143
+ contractName = _ref4.contractName,
144
+ ExecuteClient = _ref4.ExecuteClient;
145
+ // merge the user options with the defaults
146
+ return (0, _utils.getMessageProperties)(execMsg).reduce(function (m, schema) {
147
+ var _jsonschema$propertie2, _Object$keys;
148
+
149
+ // update_members
150
+ var execMethodUnderscoreName = Object.keys(schema.properties)[0]; // updateMembers
151
+
152
+ var execMethodName = (0, _case.camel)(execMethodUnderscoreName); // Cw20UpdateMembersMutation
153
+
154
+ var mutationHookParamsTypeName = "".concat((0, _case.pascal)(contractName)).concat((0, _case.pascal)(execMethodName), "Mutation"); // useCw20UpdateMembersMutation
155
+
156
+ var mutationHookName = "use".concat(mutationHookParamsTypeName);
157
+ var jsonschema = schema.properties[execMethodUnderscoreName];
158
+ var properties = (_jsonschema$propertie2 = jsonschema.properties) !== null && _jsonschema$propertie2 !== void 0 ? _jsonschema$propertie2 : {}; // TODO: there should be a better way to do this
159
+
160
+ var hasMsg = !!((_Object$keys = Object.keys(properties)) !== null && _Object$keys !== void 0 && _Object$keys.length || jsonschema !== null && jsonschema !== void 0 && jsonschema.$ref); // <ExecuteResult, Error, Cw4UpdateMembersMutation>
161
+
162
+ var useMutationTypeParameter = generateMutationTypeParameter(mutationHookParamsTypeName, hasMsg);
163
+ return [createReactQueryMutationArgsInterface({
164
+ context: context,
165
+ mutationHookParamsTypeName: mutationHookParamsTypeName,
166
+ ExecuteClient: ExecuteClient,
167
+ jsonschema: jsonschema,
168
+ useMutationTypeParameter: useMutationTypeParameter
169
+ }), createReactQueryMutationHook({
170
+ context: context,
171
+ execMethodName: execMethodName,
172
+ mutationHookName: mutationHookName,
173
+ mutationHookParamsTypeName: mutationHookParamsTypeName,
174
+ hasMsg: hasMsg,
175
+ useMutationTypeParameter: useMutationTypeParameter
176
+ })].concat((0, _toConsumableArray2["default"])(m));
177
+ }, []);
178
+ };
179
+ /**
180
+ * Generates the mutation type parameter. If args exist, we use a pick. If not, we just return the params type.
181
+ */
182
+
183
+
184
+ exports.createReactQueryMutationHooks = createReactQueryMutationHooks;
185
+
186
+ function generateMutationTypeParameter(mutationHookParamsTypeName, hasArgs) {
187
+ return t.tsTypeParameterInstantiation([// Data
188
+ t.tSTypeReference(t.identifier('ExecuteResult')), // Error
189
+ t.tsTypeReference(t.identifier('Error')), // Variables
190
+ t.tsTypeReference(t.identifier(mutationHookParamsTypeName))]);
191
+ }
192
+
193
+ /**
194
+ *
195
+ * Example:
196
+ ```
197
+ export const useCw4UpdateMembersMutation = ({ client, options }: Omit<Cw4UpdateMembersMutation, 'args'>) =>
198
+ useMutation<ExecuteResult, Error, Pick<Cw4UpdateMembersMutation, 'args'>>(
199
+ ({ args }) => client.updateMembers(args),
200
+ options
201
+ )
202
+ ```
203
+ */
204
+ var createReactQueryMutationHook = function createReactQueryMutationHook(_ref5) {
205
+ var context = _ref5.context,
206
+ mutationHookName = _ref5.mutationHookName,
207
+ mutationHookParamsTypeName = _ref5.mutationHookParamsTypeName,
208
+ execMethodName = _ref5.execMethodName,
209
+ useMutationTypeParameter = _ref5.useMutationTypeParameter,
210
+ hasMsg = _ref5.hasMsg;
211
+ var useMutationFunctionArgs = [(0, _babel.shorthandProperty)('client')];
212
+ if (hasMsg) useMutationFunctionArgs.push((0, _babel.shorthandProperty)('msg'));
213
+ useMutationFunctionArgs.push(t.objectProperty(t.identifier('args'), t.assignmentPattern(t.objectPattern(_client.FIXED_EXECUTE_PARAMS.map(function (param) {
214
+ return (0, _babel.shorthandProperty)(param.name);
215
+ })), t.objectExpression([]))));
216
+ return t.exportNamedDeclaration(t.functionDeclaration(t.identifier(mutationHookName), [(0, _utils.identifier)('options', t.tsTypeAnnotation((0, _babel.omitTypeReference)(t.tsTypeReference(t.identifier('UseMutationOptions'), useMutationTypeParameter), 'mutationFn')), true)], t.blockStatement([t.returnStatement((0, _utils.callExpression)(t.identifier('useMutation'), [t.arrowFunctionExpression([t.objectPattern(useMutationFunctionArgs)], t.callExpression(t.memberExpression(t.identifier('client'), t.identifier(execMethodName)), (hasMsg ? [t.identifier('msg')] : []).concat(_client.FIXED_EXECUTE_PARAMS.map(function (param) {
217
+ return t.identifier(param.name);
218
+ }))), false // not async
219
+ ), t.identifier('options')], useMutationTypeParameter))])));
220
+ };
221
+
222
+ exports.createReactQueryMutationHook = createReactQueryMutationHook;
223
+
224
+ var createReactQueryHookInterface = function createReactQueryHookInterface(_ref6) {
225
+ var context = _ref6.context,
226
+ QueryClient = _ref6.QueryClient,
227
+ hookParamsTypeName = _ref6.hookParamsTypeName,
228
+ responseType = _ref6.responseType,
229
+ jsonschema = _ref6.jsonschema;
230
+ // merge the user options with the defaults
231
+ var options = context.options.reactQuery;
232
+ var typedUseQueryOptions = t.tsTypeReference(t.identifier('UseQueryOptions'), t.tsTypeParameterInstantiation([(0, _babel.typeRefOrOptionalUnion)(t.identifier(responseType), options.optionalClient), t.tsTypeReference(t.identifier('Error')), t.tsTypeReference(t.identifier(responseType)), t.tsArrayType(t.tsParenthesizedType(t.tsUnionType([t.tsStringKeyword(), t.tsUndefinedKeyword()])))]));
233
+ var body = [(0, _utils.tsPropertySignature)(t.identifier('client'), t.tsTypeAnnotation(t.tsTypeReference(t.identifier(QueryClient))), options.optionalClient), (0, _utils.tsPropertySignature)(t.identifier('options'), t.tsTypeAnnotation(options.v4 ? t.tSIntersectionType([(0, _babel.omitTypeReference)(typedUseQueryOptions, "'queryKey' | 'queryFn' | 'initialData'"), t.tSTypeLiteral([t.tsPropertySignature(t.identifier('initialData?'), t.tsTypeAnnotation(t.tsUndefinedKeyword()))])]) : typedUseQueryOptions), true)];
234
+ var props = getProps(context, jsonschema);
235
+
236
+ if (props.length) {
237
+ body.push(t.tsPropertySignature(t.identifier('args'), t.tsTypeAnnotation(t.tsTypeLiteral(props))));
238
+ }
239
+
240
+ return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(hookParamsTypeName), null, [], t.tsInterfaceBody(body)));
241
+ };
242
+
243
+ exports.createReactQueryHookInterface = createReactQueryHookInterface;
244
+
245
+ var getProps = function getProps(context, jsonschema) {
246
+ var _jsonschema$propertie3;
247
+
248
+ var keys = Object.keys((_jsonschema$propertie3 = jsonschema.properties) !== null && _jsonschema$propertie3 !== void 0 ? _jsonschema$propertie3 : {});
249
+ if (!keys.length) return [];
250
+ return keys.map(function (prop) {
251
+ var _getPropertyType = (0, _types2.getPropertyType)(context, jsonschema, prop),
252
+ type = _getPropertyType.type,
253
+ optional = _getPropertyType.optional;
254
+
255
+ return (0, _babel.propertySignature)(context.options.reactQuery.camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(type), optional);
256
+ });
257
+ };
258
+
259
+ var generateUseQueryQueryKey = function generateUseQueryQueryKey(hookKeyName, props, optionalClient) {
260
+ var queryKey = [t.stringLiteral(hookKeyName), t.optionalMemberExpression(t.identifier('client'), t.identifier('contractAddress'), false, optionalClient)];
261
+
262
+ if (props.includes('args')) {
263
+ queryKey.push(t.callExpression(t.memberExpression(t.identifier('JSON'), t.identifier('stringify')), [t.identifier('args')]));
264
+ }
265
+
266
+ return queryKey;
267
+ };