wasm-ast-types 0.4.3 → 0.6.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 (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
package/README.md CHANGED
@@ -1 +1,130 @@
1
1
  # wasm-ast-types
2
+
3
+ ## working with ASTs
4
+
5
+ ### 1 edit the fixture
6
+
7
+ edit `./scripts/fixture.ts`, for example:
8
+
9
+ ```js
10
+ // ./scripts/fixture.ts
11
+ export interface InstantiateMsg {
12
+ admin?: string | null;
13
+ members: Member[];
14
+ }
15
+ ```
16
+
17
+ ### 2 run AST generator
18
+
19
+ ```
20
+ yarn test:ast
21
+ ```
22
+
23
+ ### 3 look at the JSON produced
24
+
25
+ ```
26
+ code ./scripts/test-output.json
27
+ ```
28
+
29
+ We use the npm module `ast-stringify` to strip out unneccesary props, and generate a JSON for reference.
30
+
31
+ You will see a `File` and `Program`... only concern yourself with the `body[]`:
32
+
33
+ ```json
34
+ {
35
+ "type": "File",
36
+ "errors": [],
37
+ "program": {
38
+ "type": "Program",
39
+ "sourceType": "module",
40
+ "interpreter": null,
41
+ "body": [
42
+ {
43
+ "type": "ExportNamedDeclaration",
44
+ "exportKind": "type",
45
+ "specifiers": [],
46
+ "source": null,
47
+ "declaration": {
48
+ "type": "TSInterfaceDeclaration",
49
+ "id": {
50
+ "type": "Identifier",
51
+ "name": "InstantiateMsg"
52
+ },
53
+ "body": {
54
+ "type": "TSInterfaceBody",
55
+ "body": [
56
+ {
57
+ "type": "TSPropertySignature",
58
+ "key": {
59
+ "type": "Identifier",
60
+ "name": "admin"
61
+ },
62
+ "computed": false,
63
+ "optional": true,
64
+ "typeAnnotation": {
65
+ "type": "TSTypeAnnotation",
66
+ "typeAnnotation": {
67
+ "type": "TSUnionType",
68
+ "types": [
69
+ {
70
+ "type": "TSStringKeyword"
71
+ },
72
+ {
73
+ "type": "TSNullKeyword"
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ },
79
+ {
80
+ "type": "TSPropertySignature",
81
+ "key": {
82
+ "type": "Identifier",
83
+ "name": "members"
84
+ },
85
+ "computed": false,
86
+ "typeAnnotation": {
87
+ "type": "TSTypeAnnotation",
88
+ "typeAnnotation": {
89
+ "type": "TSArrayType",
90
+ "elementType": {
91
+ "type": "TSTypeReference",
92
+ "typeName": {
93
+ "type": "Identifier",
94
+ "name": "Member"
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ ]
101
+ }
102
+ }
103
+ }
104
+ ],
105
+ "directives": []
106
+ },
107
+ "comments": []
108
+ }
109
+ ```
110
+
111
+ ### 4 code with `@babel/types` using the JSON as a reference
112
+
113
+ NOTE: 4 continued ideally you should be writing a test with your generator!
114
+
115
+ ```js
116
+ import * as t from '@babel/types';
117
+
118
+ export const createNewGenerator = () => {
119
+ return t.exportNamedDeclaration(
120
+ t.tsInterfaceDeclaration(
121
+ t.identifier('InstantiateMsg'),
122
+ null,
123
+ [],
124
+ t.tsInterfaceBody([
125
+ // ... more code ...
126
+ ])
127
+ )
128
+ );
129
+ };
130
+ ```
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.createWasmQueryMethod = exports.createWasmExecMethod = exports.createTypeOrInterface = exports.createTypeInterface = exports.createQueryInterface = exports.createQueryClass = exports.createPropertyFunctionWithObjectParamsForExec = exports.createPropertyFunctionWithObjectParams = exports.createExecuteInterface = exports.createExecuteClass = void 0;
10
+ exports.getWasmMethodArgs = exports.createWasmQueryMethod = exports.createWasmExecMethod = exports.createTypeOrInterface = exports.createTypeInterface = exports.createQueryInterface = exports.createQueryClass = exports.createPropertyFunctionWithObjectParamsForExec = exports.createPropertyFunctionWithObjectParams = exports.createExecuteInterface = exports.createExecuteClass = exports.FIXED_EXECUTE_PARAMS = exports.CONSTANT_EXEC_PARAMS = void 0;
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
@@ -15,34 +15,34 @@ 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
23
 
24
24
  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
25
 
26
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
27
 
28
- var createWasmQueryMethod = function createWasmQueryMethod(jsonschema) {
29
- var _jsonschema$propertie;
28
+ var CONSTANT_EXEC_PARAMS = [t.assignmentPattern((0, _babel.identifier)('fee', t.tsTypeAnnotation(t.tsUnionType([t.tSNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), false), t.stringLiteral('auto')), (0, _babel.identifier)('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), (0, _babel.identifier)('funds', t.tsTypeAnnotation(t.tsArrayType(t.tsTypeReference(t.identifier('Coin')))), true)];
29
+ exports.CONSTANT_EXEC_PARAMS = CONSTANT_EXEC_PARAMS;
30
+ var FIXED_EXECUTE_PARAMS = [(0, _babel.identifier)('fee', t.tsTypeAnnotation(t.tsUnionType([t.tsNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), true), (0, _babel.identifier)('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), (0, _babel.identifier)('funds', t.tsTypeAnnotation(t.tsArrayType(t.tsTypeReference(t.identifier('Coin')))), true)];
31
+ exports.FIXED_EXECUTE_PARAMS = FIXED_EXECUTE_PARAMS;
30
32
 
33
+ var createWasmQueryMethod = function createWasmQueryMethod(context, jsonschema) {
31
34
  var underscoreName = Object.keys(jsonschema.properties)[0];
32
35
  var methodName = (0, _case.camel)(underscoreName);
33
36
  var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
34
- var properties = (_jsonschema$propertie = jsonschema.properties[underscoreName].properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {};
35
- var obj = (0, _types2.createTypedObjectParams)(jsonschema.properties[underscoreName]);
36
- var args = Object.keys(properties).map(function (prop) {
37
- return t.objectProperty(t.identifier(prop), t.identifier((0, _case.camel)(prop)), false, true);
38
- });
37
+ var obj = (0, _types2.createTypedObjectParams)(context, jsonschema.properties[underscoreName]);
38
+ var args = getWasmMethodArgs(context, jsonschema.properties[underscoreName]);
39
39
  var actionArg = t.objectProperty(t.identifier(underscoreName), t.objectExpression(args));
40
40
  return t.classProperty(t.identifier(methodName), (0, _utils.arrowFunctionExpression)(obj ? [obj] : [], t.blockStatement([t.returnStatement(t.callExpression(t.memberExpression(t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('queryContractSmart')), [t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.objectExpression([actionArg])]))]), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tSTypeReference(t.identifier(responseType))]))), true));
41
41
  };
42
42
 
43
43
  exports.createWasmQueryMethod = createWasmQueryMethod;
44
44
 
45
- var createQueryClass = function createQueryClass(className, implementsClassName, queryMsg) {
45
+ var createQueryClass = function createQueryClass(context, className, implementsClassName, queryMsg) {
46
46
  var propertyNames = (0, _utils.getMessageProperties)(queryMsg).map(function (method) {
47
47
  var _Object$keys;
48
48
 
@@ -50,7 +50,7 @@ var createQueryClass = function createQueryClass(className, implementsClassName,
50
50
  }).filter(Boolean);
51
51
  var bindings = propertyNames.map(_case.camel).map(_utils.bindMethod);
52
52
  var methods = (0, _utils.getMessageProperties)(queryMsg).map(function (schema) {
53
- return createWasmQueryMethod(schema);
53
+ return createWasmQueryMethod(context, schema);
54
54
  });
55
55
  return t.exportNamedDeclaration((0, _utils.classDeclaration)(className, [// client
56
56
  (0, _utils.classProperty)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), // contractAddress
@@ -61,25 +61,42 @@ var createQueryClass = function createQueryClass(className, implementsClassName,
61
61
 
62
62
  exports.createQueryClass = createQueryClass;
63
63
 
64
- var createWasmExecMethod = function createWasmExecMethod(jsonschema) {
65
- var _jsonschema$propertie2;
64
+ var getWasmMethodArgs = function getWasmMethodArgs(context, jsonschema) {
65
+ var _jsonschema$propertie;
66
66
 
67
- var underscoreName = Object.keys(jsonschema.properties)[0];
68
- var methodName = (0, _case.camel)(underscoreName);
69
- var properties = (_jsonschema$propertie2 = jsonschema.properties[underscoreName].properties) !== null && _jsonschema$propertie2 !== void 0 ? _jsonschema$propertie2 : {};
70
- var obj = (0, _types2.createTypedObjectParams)(jsonschema.properties[underscoreName]);
71
- var args = Object.keys(properties).map(function (prop) {
67
+ var keys = Object.keys((_jsonschema$propertie = jsonschema.properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {}); // only 1 degree $ref-lookup
68
+
69
+ if (!keys.length && jsonschema.$ref) {
70
+ var obj = context.refLookup(jsonschema.$ref);
71
+
72
+ if (obj) {
73
+ var _obj$properties;
74
+
75
+ keys = Object.keys((_obj$properties = obj.properties) !== null && _obj$properties !== void 0 ? _obj$properties : {});
76
+ }
77
+ }
78
+
79
+ var args = keys.map(function (prop) {
72
80
  return t.objectProperty(t.identifier(prop), t.identifier((0, _case.camel)(prop)), false, prop === (0, _case.camel)(prop));
73
81
  });
74
- var constantParams = [t.assignmentPattern((0, _babel.identifier)('fee', t.tsTypeAnnotation(t.tsUnionType([t.tSNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), false), t.stringLiteral('auto')), (0, _babel.identifier)('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), (0, _babel.identifier)('funds', t.tsTypeAnnotation((0, _babel.tsTypeOperator)(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
82
+ return args;
83
+ };
84
+
85
+ exports.getWasmMethodArgs = getWasmMethodArgs;
86
+
87
+ var createWasmExecMethod = function createWasmExecMethod(context, jsonschema) {
88
+ var underscoreName = Object.keys(jsonschema.properties)[0];
89
+ var methodName = (0, _case.camel)(underscoreName);
90
+ var obj = (0, _types2.createTypedObjectParams)(context, jsonschema.properties[underscoreName]);
91
+ var args = getWasmMethodArgs(context, jsonschema.properties[underscoreName]);
75
92
  return t.classProperty(t.identifier(methodName), (0, _utils.arrowFunctionExpression)(obj ? [// props
76
- obj].concat(constantParams) : constantParams, t.blockStatement([t.returnStatement(t.awaitExpression(t.callExpression(t.memberExpression(t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('execute')), [t.memberExpression(t.thisExpression(), t.identifier('sender')), t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.objectExpression([t.objectProperty(t.identifier(underscoreName), t.objectExpression((0, _toConsumableArray2["default"])(args)))]), t.identifier('fee'), t.identifier('memo'), t.identifier('funds')])))]), // return type
93
+ obj].concat(CONSTANT_EXEC_PARAMS) : CONSTANT_EXEC_PARAMS, t.blockStatement([t.returnStatement(t.awaitExpression(t.callExpression(t.memberExpression(t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('execute')), [t.memberExpression(t.thisExpression(), t.identifier('sender')), t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.objectExpression([t.objectProperty(t.identifier(underscoreName), t.objectExpression((0, _toConsumableArray2["default"])(args)))]), t.identifier('fee'), t.identifier('memo'), t.identifier('funds')])))]), // return type
77
94
  t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tSTypeReference(t.identifier('ExecuteResult'))]))), true));
78
95
  };
79
96
 
80
97
  exports.createWasmExecMethod = createWasmExecMethod;
81
98
 
82
- var createExecuteClass = function createExecuteClass(className, implementsClassName, extendsClassName, execMsg) {
99
+ var createExecuteClass = function createExecuteClass(context, className, implementsClassName, extendsClassName, execMsg) {
83
100
  var propertyNames = (0, _utils.getMessageProperties)(execMsg).map(function (method) {
84
101
  var _Object$keys2;
85
102
 
@@ -87,7 +104,7 @@ var createExecuteClass = function createExecuteClass(className, implementsClassN
87
104
  }).filter(Boolean);
88
105
  var bindings = propertyNames.map(_case.camel).map(_utils.bindMethod);
89
106
  var methods = (0, _utils.getMessageProperties)(execMsg).map(function (schema) {
90
- return createWasmExecMethod(schema);
107
+ return createWasmExecMethod(context, schema);
91
108
  });
92
109
  var blockStmt = [];
93
110
 
@@ -107,11 +124,11 @@ var createExecuteClass = function createExecuteClass(className, implementsClassN
107
124
 
108
125
  exports.createExecuteClass = createExecuteClass;
109
126
 
110
- var createExecuteInterface = function createExecuteInterface(className, extendsClassName, execMsg) {
127
+ var createExecuteInterface = function createExecuteInterface(context, className, extendsClassName, execMsg) {
111
128
  var methods = (0, _utils.getMessageProperties)(execMsg).map(function (jsonschema) {
112
129
  var underscoreName = Object.keys(jsonschema.properties)[0];
113
130
  var methodName = (0, _case.camel)(underscoreName);
114
- return createPropertyFunctionWithObjectParamsForExec(methodName, 'ExecuteResult', jsonschema.properties[underscoreName]);
131
+ return createPropertyFunctionWithObjectParamsForExec(context, methodName, 'ExecuteResult', jsonschema.properties[underscoreName]);
115
132
  });
116
133
  var extendsAst = extendsClassName ? [t.tSExpressionWithTypeArguments(t.identifier(extendsClassName))] : [];
117
134
  return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, extendsAst, t.tSInterfaceBody([// contract address
@@ -121,8 +138,8 @@ var createExecuteInterface = function createExecuteInterface(className, extendsC
121
138
 
122
139
  exports.createExecuteInterface = createExecuteInterface;
123
140
 
124
- var createPropertyFunctionWithObjectParams = function createPropertyFunctionWithObjectParams(methodName, responseType, jsonschema) {
125
- var obj = (0, _types2.createTypedObjectParams)(jsonschema);
141
+ var createPropertyFunctionWithObjectParams = function createPropertyFunctionWithObjectParams(context, methodName, responseType, jsonschema) {
142
+ var obj = (0, _types2.createTypedObjectParams)(context, jsonschema);
126
143
  var func = {
127
144
  type: 'TSFunctionType',
128
145
  typeAnnotation: (0, _utils.promiseTypeAnnotation)(responseType),
@@ -133,33 +150,32 @@ var createPropertyFunctionWithObjectParams = function createPropertyFunctionWith
133
150
 
134
151
  exports.createPropertyFunctionWithObjectParams = createPropertyFunctionWithObjectParams;
135
152
 
136
- var createPropertyFunctionWithObjectParamsForExec = function createPropertyFunctionWithObjectParamsForExec(methodName, responseType, jsonschema) {
137
- var obj = (0, _types2.createTypedObjectParams)(jsonschema);
138
- var fixedParams = [(0, _babel.identifier)('fee', t.tsTypeAnnotation(t.tsUnionType([t.tsNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), true), (0, _babel.identifier)('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), (0, _babel.identifier)('funds', t.tsTypeAnnotation((0, _babel.tsTypeOperator)(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
153
+ var createPropertyFunctionWithObjectParamsForExec = function createPropertyFunctionWithObjectParamsForExec(context, methodName, responseType, jsonschema) {
154
+ var obj = (0, _types2.createTypedObjectParams)(context, jsonschema);
139
155
  var func = {
140
156
  type: 'TSFunctionType',
141
157
  typeAnnotation: (0, _utils.promiseTypeAnnotation)(responseType),
142
- parameters: obj ? [obj].concat(fixedParams) : fixedParams
158
+ parameters: obj ? [obj].concat(FIXED_EXECUTE_PARAMS) : FIXED_EXECUTE_PARAMS
143
159
  };
144
160
  return t.tSPropertySignature(t.identifier(methodName), t.tsTypeAnnotation(func));
145
161
  };
146
162
 
147
163
  exports.createPropertyFunctionWithObjectParamsForExec = createPropertyFunctionWithObjectParamsForExec;
148
164
 
149
- var createQueryInterface = function createQueryInterface(className, queryMsg) {
165
+ var createQueryInterface = function createQueryInterface(context, className, queryMsg) {
150
166
  var methods = (0, _utils.getMessageProperties)(queryMsg).map(function (jsonschema) {
151
167
  var underscoreName = Object.keys(jsonschema.properties)[0];
152
168
  var methodName = (0, _case.camel)(underscoreName);
153
169
  var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
154
- return createPropertyFunctionWithObjectParams(methodName, responseType, jsonschema.properties[underscoreName]);
170
+ return createPropertyFunctionWithObjectParams(context, methodName, responseType, jsonschema.properties[underscoreName]);
155
171
  });
156
172
  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)))));
157
173
  };
158
174
 
159
175
  exports.createQueryInterface = createQueryInterface;
160
176
 
161
- var createTypeOrInterface = function createTypeOrInterface(Type, jsonschema) {
162
- var _jsonschema$propertie3;
177
+ var createTypeOrInterface = function createTypeOrInterface(context, Type, jsonschema) {
178
+ var _jsonschema$propertie2;
163
179
 
164
180
  if (jsonschema.type !== 'object') {
165
181
  if (!jsonschema.type) {
@@ -169,8 +185,8 @@ var createTypeOrInterface = function createTypeOrInterface(Type, jsonschema) {
169
185
  return t.exportNamedDeclaration(t.tsTypeAliasDeclaration(t.identifier(Type), null, (0, _types2.getType)(jsonschema.type)));
170
186
  }
171
187
 
172
- var props = Object.keys((_jsonschema$propertie3 = jsonschema.properties) !== null && _jsonschema$propertie3 !== void 0 ? _jsonschema$propertie3 : {}).map(function (prop) {
173
- var _getPropertyType = (0, _types2.getPropertyType)(jsonschema, prop),
188
+ var props = Object.keys((_jsonschema$propertie2 = jsonschema.properties) !== null && _jsonschema$propertie2 !== void 0 ? _jsonschema$propertie2 : {}).map(function (prop) {
189
+ var _getPropertyType = (0, _types2.getPropertyType)(context, jsonschema, prop),
174
190
  type = _getPropertyType.type,
175
191
  optional = _getPropertyType.optional;
176
192
 
@@ -181,9 +197,9 @@ var createTypeOrInterface = function createTypeOrInterface(Type, jsonschema) {
181
197
 
182
198
  exports.createTypeOrInterface = createTypeOrInterface;
183
199
 
184
- var createTypeInterface = function createTypeInterface(jsonschema) {
200
+ var createTypeInterface = function createTypeInterface(context, jsonschema) {
185
201
  var Type = jsonschema.title;
186
- return createTypeOrInterface(Type, jsonschema);
202
+ return createTypeOrInterface(context, Type, jsonschema);
187
203
  };
188
204
 
189
205
  exports.createTypeInterface = createTypeInterface;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _client = require("./client");
8
+
9
+ Object.keys(_client).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _client[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _client[key];
16
+ }
17
+ });
18
+ });
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _arrays = _interopRequireDefault(require("../../../../../__fixtures__/misc/schema/arrays.json"));
6
+
7
+ var _client = require("../client");
8
+
9
+ var _context = require("../../context");
10
+
11
+ var _testUtils = require("../../../test-utils");
12
+
13
+ var ctx = new _context.RenderContext(_arrays["default"]);
14
+ it('execute_msg_for__empty', function () {
15
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _arrays["default"]));
16
+ });
17
+ it('query classes', function () {
18
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _arrays["default"]));
19
+ });
20
+ it('execute classes array types', function () {
21
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _arrays["default"]));
22
+ });
23
+ it('execute interfaces no extends', function () {
24
+ (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _arrays["default"]));
25
+ });
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _execute_msg = _interopRequireDefault(require("../../../../../__fixtures__/daodao/cw-named-groups/execute_msg.json"));
6
+
7
+ var _client = require("../client");
8
+
9
+ var _context = require("../../context");
10
+
11
+ var _testUtils = require("../../../test-utils");
12
+
13
+ var ctx = new _context.RenderContext(_execute_msg["default"]);
14
+ it('execute_msg', function () {
15
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg["default"]));
16
+ });
17
+ it('query classes', function () {
18
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _execute_msg["default"]));
19
+ });
20
+ it('execute classes array types', function () {
21
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg["default"]));
22
+ });
23
+ it('execute interfaces no extends', function () {
24
+ (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg["default"]));
25
+ });
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _execute_msg = _interopRequireDefault(require("../../../../../__fixtures__/daodao/cw-proposal-single/execute_msg.json"));
6
+
7
+ var _query_msg = _interopRequireDefault(require("../../../../../__fixtures__/daodao/cw-proposal-single/query_msg.json"));
8
+
9
+ var _client = require("../client");
10
+
11
+ var _context = require("../../context");
12
+
13
+ var _testUtils = require("../../../test-utils");
14
+
15
+ it('execute_msg_for', function () {
16
+ var ctx = new _context.RenderContext(_execute_msg["default"]);
17
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg["default"]));
18
+ });
19
+ it('query classes', function () {
20
+ var ctx = new _context.RenderContext(_query_msg["default"]);
21
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _query_msg["default"]));
22
+ });
23
+ it('execute classes array types', function () {
24
+ var ctx = new _context.RenderContext(_execute_msg["default"]);
25
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg["default"]));
26
+ });
27
+ it('execute interfaces no extends', function () {
28
+ var ctx = new _context.RenderContext(_execute_msg["default"]);
29
+ (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg["default"]));
30
+ });
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _query_msg = _interopRequireDefault(require("../../../../../__fixtures__/daodao/cw-admin-factory/query_msg.json"));
6
+
7
+ var _client = require("../client");
8
+
9
+ var _context = require("../../context");
10
+
11
+ var _testUtils = require("../../../test-utils");
12
+
13
+ var ctx = new _context.RenderContext(_query_msg["default"]);
14
+ it('query classes', function () {
15
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _query_msg["default"]));
16
+ });
17
+ it('query interface', function () {
18
+ (0, _testUtils.expectCode)((0, _client.createQueryInterface)(ctx, 'ReadOnlyInstance', _query_msg["default"]));
19
+ });
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../../__fixtures__/sg721/execute_msg_for__empty.json"));
6
+
7
+ var _client = require("../client");
8
+
9
+ var _context = require("../../context");
10
+
11
+ var _testUtils = require("../../../test-utils");
12
+
13
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
14
+ it('execute_msg_for__empty', function () {
15
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _execute_msg_for__empty["default"]));
16
+ });
17
+ it('query classes', function () {
18
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _execute_msg_for__empty["default"]));
19
+ });
20
+ it('execute classes array types', function () {
21
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
22
+ });
23
+ it('execute interfaces no extends', function () {
24
+ (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg_for__empty["default"]));
25
+ });
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _execute_msg = _interopRequireDefault(require("../../../../../__fixtures__/daodao/cw-named-groups/execute_msg.json"));
6
+
7
+ var _query_msg = _interopRequireDefault(require("../../../../../__fixtures__/basic/query_msg.json"));
8
+
9
+ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../../__fixtures__/basic/execute_msg_for__empty.json"));
10
+
11
+ var _approval_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/approval_response.json"));
12
+
13
+ var _all_nft_info_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/all_nft_info_response.json"));
14
+
15
+ var _approvals_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/approvals_response.json"));
16
+
17
+ var _collection_info_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/collection_info_response.json"));
18
+
19
+ var _contract_info_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/contract_info_response.json"));
20
+
21
+ var _instantiate_msg = _interopRequireDefault(require("../../../../../__fixtures__/basic/instantiate_msg.json"));
22
+
23
+ var _nft_info_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/nft_info_response.json"));
24
+
25
+ var _num_tokens_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/num_tokens_response.json"));
26
+
27
+ var _operators_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/operators_response.json"));
28
+
29
+ var _owner_of_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/owner_of_response.json"));
30
+
31
+ var _tokens_response = _interopRequireDefault(require("../../../../../__fixtures__/basic/tokens_response.json"));
32
+
33
+ var _client = require("../client");
34
+
35
+ var _context = require("../../context");
36
+
37
+ var _testUtils = require("../../../test-utils");
38
+
39
+ it('approval_response', function () {
40
+ var ctx = new _context.RenderContext(_approval_response["default"]);
41
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _approval_response["default"]));
42
+ });
43
+ it('all_nft_info_response', function () {
44
+ var ctx = new _context.RenderContext(_all_nft_info_response["default"]);
45
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _all_nft_info_response["default"]));
46
+ });
47
+ it('approvals_response', function () {
48
+ var ctx = new _context.RenderContext(_approvals_response["default"]);
49
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _approvals_response["default"]));
50
+ });
51
+ it('collection_info_response', function () {
52
+ var ctx = new _context.RenderContext(_collection_info_response["default"]);
53
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _collection_info_response["default"]));
54
+ });
55
+ it('contract_info_response', function () {
56
+ var ctx = new _context.RenderContext(_contract_info_response["default"]);
57
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _contract_info_response["default"]));
58
+ });
59
+ it('instantiate_msg', function () {
60
+ var ctx = new _context.RenderContext(_instantiate_msg["default"]);
61
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _instantiate_msg["default"]));
62
+ });
63
+ it('nft_info_response', function () {
64
+ var ctx = new _context.RenderContext(_nft_info_response["default"]);
65
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _nft_info_response["default"]));
66
+ });
67
+ it('num_tokens_response', function () {
68
+ var ctx = new _context.RenderContext(_num_tokens_response["default"]);
69
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _num_tokens_response["default"]));
70
+ });
71
+ it('operators_response', function () {
72
+ var ctx = new _context.RenderContext(_operators_response["default"]);
73
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _operators_response["default"]));
74
+ });
75
+ it('owner_of_response', function () {
76
+ var ctx = new _context.RenderContext(_owner_of_response["default"]);
77
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _owner_of_response["default"]));
78
+ });
79
+ it('tokens_response', function () {
80
+ var ctx = new _context.RenderContext(_tokens_response["default"]);
81
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, _tokens_response["default"]));
82
+ });
83
+ it('query classes', function () {
84
+ var ctx = new _context.RenderContext(_query_msg["default"]);
85
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', _query_msg["default"]));
86
+ });
87
+ it('execute classes', function () {
88
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
89
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', 'SG721QueryClient', _execute_msg_for__empty["default"]));
90
+ });
91
+ it('execute classes no extends', function () {
92
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
93
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
94
+ });
95
+ it('execute classes array types', function () {
96
+ var ctx = new _context.RenderContext(_execute_msg["default"]);
97
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg["default"]));
98
+ });
99
+ it('execute interfaces no extends', function () {
100
+ var ctx = new _context.RenderContext(_execute_msg_for__empty["default"]);
101
+ (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, _execute_msg_for__empty["default"]));
102
+ });
103
+ it('query interfaces', function () {
104
+ var ctx = new _context.RenderContext(_query_msg["default"]);
105
+ (0, _testUtils.expectCode)((0, _client.createQueryInterface)(ctx, 'SG721ReadOnlyInstance', _query_msg["default"]));
106
+ });