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
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
+ });