wasm-ast-types 0.13.0 → 0.15.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.
- package/main/client/client.js +3 -2
- package/main/client/test/ts-client.overrides.spec.js +37 -0
- package/main/context/context.js +2 -1
- package/main/react-query/react-query.js +140 -70
- package/main/react-query/react-query.spec.js +13 -0
- package/main/utils/babel.js +2 -0
- package/module/client/client.js +3 -2
- package/module/client/test/ts-client.overrides.spec.js +30 -0
- package/module/context/context.js +2 -1
- package/module/react-query/react-query.js +92 -22
- package/module/react-query/react-query.spec.js +13 -0
- package/module/utils/babel.js +2 -1
- package/package.json +2 -2
- package/src/client/client.ts +4 -2
- package/src/client/test/__snapshots__/ts-client.overrides.spec.ts.snap +709 -0
- package/src/client/test/ts-client.overrides.spec.ts +74 -0
- package/src/context/context.ts +4 -1
- package/src/react-query/__snapshots__/react-query.spec.ts.snap +396 -0
- package/src/react-query/react-query.spec.ts +17 -0
- package/src/react-query/react-query.ts +902 -750
- package/src/utils/babel.ts +8 -1
- package/types/context/context.d.ts +2 -0
- package/types/react-query/react-query.d.ts +2 -2
- package/types/utils/babel.d.ts +1 -1
package/main/client/client.js
CHANGED
@@ -120,10 +120,11 @@ var createExecuteClass = function createExecuteClass(context, className, impleme
|
|
120
120
|
|
121
121
|
[].push.apply(blockStmt, [// client/contract set
|
122
122
|
t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('client'))), 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)));
|
123
|
+
var noImplicitOverride = context.options.client.noImplicitOverride && extendsClassName && context.options.client.execExtendsQuery;
|
123
124
|
return t.exportNamedDeclaration((0, _utils.classDeclaration)(className, [// client
|
124
|
-
(0, _utils.classProperty)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), // sender
|
125
|
+
(0, _utils.classProperty)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient'))), false, false, noImplicitOverride), // sender
|
125
126
|
(0, _utils.classProperty)('sender', t.tsTypeAnnotation(t.tsStringKeyword())), // contractAddress
|
126
|
-
(0, _utils.classProperty)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword())), // constructor
|
127
|
+
(0, _utils.classProperty)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()), false, false, noImplicitOverride), // constructor
|
127
128
|
t.classMethod('constructor', t.identifier('constructor'), [(0, _utils.typedIdentifier)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), (0, _utils.typedIdentifier)('sender', t.tsTypeAnnotation(t.tsStringKeyword())), (0, _utils.typedIdentifier)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement(blockStmt))].concat((0, _toConsumableArray2["default"])(methods)), [t.tSExpressionWithTypeArguments(t.identifier(implementsClassName))], extendsClassName ? t.identifier(extendsClassName) : null));
|
128
129
|
};
|
129
130
|
|
@@ -0,0 +1,37 @@
|
|
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 _testUtils = require("../../../test-utils");
|
10
|
+
|
11
|
+
var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
|
12
|
+
describe('exec', function () {});
|
13
|
+
it('Impl, execExtends, noExtendsClass', function () {
|
14
|
+
ctx.options.client.noImplicitOverride = false;
|
15
|
+
ctx.options.client.execExtendsQuery = true;
|
16
|
+
(0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
|
17
|
+
});
|
18
|
+
it('Impl, execExtends, ExtendsClass', function () {
|
19
|
+
ctx.options.client.noImplicitOverride = false;
|
20
|
+
ctx.options.client.execExtendsQuery = true;
|
21
|
+
(0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', 'ExtendsClassName', _execute_msg_for__empty["default"]));
|
22
|
+
});
|
23
|
+
it('noImpl, execExtends, ExtendsClass', function () {
|
24
|
+
ctx.options.client.noImplicitOverride = true;
|
25
|
+
ctx.options.client.execExtendsQuery = true;
|
26
|
+
(0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', 'ExtendsClassName', _execute_msg_for__empty["default"]));
|
27
|
+
});
|
28
|
+
it('noImpl, noExecExtends, ExtendsClass', function () {
|
29
|
+
ctx.options.client.noImplicitOverride = true;
|
30
|
+
ctx.options.client.execExtendsQuery = false;
|
31
|
+
(0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', 'ExtendsClassName', _execute_msg_for__empty["default"]));
|
32
|
+
});
|
33
|
+
it('noImpl, noExecExtends, noExtendsClass', function () {
|
34
|
+
ctx.options.client.noImplicitOverride = true;
|
35
|
+
ctx.options.client.execExtendsQuery = false;
|
36
|
+
(0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
|
37
|
+
});
|
package/main/context/context.js
CHANGED
@@ -49,12 +49,7 @@ var createReactQueryHooks = function createReactQueryHooks(_ref) {
|
|
49
49
|
}));
|
50
50
|
}
|
51
51
|
|
52
|
-
|
53
|
-
context: context,
|
54
|
-
QueryClient: QueryClient,
|
55
|
-
genericQueryInterfaceName: genericQueryInterfaceName
|
56
|
-
}));
|
57
|
-
body.push.apply(body, (0, _toConsumableArray2["default"])((0, _utils.getMessageProperties)(queryMsg).reduce(function (m, schema) {
|
52
|
+
var queryMsgs = (0, _utils.getMessageProperties)(queryMsg).map(function (schema) {
|
58
53
|
// list_voters
|
59
54
|
var underscoreName = Object.keys(schema.properties)[0]; // listVoters
|
60
55
|
|
@@ -68,6 +63,39 @@ var createReactQueryHooks = function createReactQueryHooks(_ref) {
|
|
68
63
|
|
69
64
|
var getterKey = (0, _case.camel)("".concat(contractName).concat((0, _case.pascal)(methodName)));
|
70
65
|
var jsonschema = schema.properties[underscoreName];
|
66
|
+
return {
|
67
|
+
underscoreName: underscoreName,
|
68
|
+
methodName: methodName,
|
69
|
+
hookParamsTypeName: hookParamsTypeName,
|
70
|
+
hookName: hookName,
|
71
|
+
responseType: responseType,
|
72
|
+
getterKey: getterKey,
|
73
|
+
jsonschema: jsonschema
|
74
|
+
};
|
75
|
+
});
|
76
|
+
var queryFactoryName = "".concat((0, _case.camel)(contractName), "Queries");
|
77
|
+
|
78
|
+
if (options.queryFactory) {
|
79
|
+
body.push(createReactQueryFactory({
|
80
|
+
context: context,
|
81
|
+
queryFactoryName: queryFactoryName,
|
82
|
+
queryKeysName: queryKeysName,
|
83
|
+
queryMsgs: queryMsgs
|
84
|
+
}));
|
85
|
+
}
|
86
|
+
|
87
|
+
body.push(createReactQueryHookGenericInterface({
|
88
|
+
context: context,
|
89
|
+
QueryClient: QueryClient,
|
90
|
+
genericQueryInterfaceName: genericQueryInterfaceName
|
91
|
+
}));
|
92
|
+
body.push.apply(body, (0, _toConsumableArray2["default"])(queryMsgs.reduce(function (m, _ref2) {
|
93
|
+
var methodName = _ref2.methodName,
|
94
|
+
hookParamsTypeName = _ref2.hookParamsTypeName,
|
95
|
+
hookName = _ref2.hookName,
|
96
|
+
responseType = _ref2.responseType,
|
97
|
+
getterKey = _ref2.getterKey,
|
98
|
+
jsonschema = _ref2.jsonschema;
|
71
99
|
return [createReactQueryHookInterface({
|
72
100
|
context: context,
|
73
101
|
hookParamsTypeName: hookParamsTypeName,
|
@@ -91,20 +119,9 @@ var createReactQueryHooks = function createReactQueryHooks(_ref) {
|
|
91
119
|
|
92
120
|
exports.createReactQueryHooks = createReactQueryHooks;
|
93
121
|
|
94
|
-
|
122
|
+
function buildQueryFn(methodName, jsonschema, options) {
|
95
123
|
var _jsonschema$propertie;
|
96
124
|
|
97
|
-
var context = _ref2.context,
|
98
|
-
hookName = _ref2.hookName,
|
99
|
-
hookParamsTypeName = _ref2.hookParamsTypeName,
|
100
|
-
responseType = _ref2.responseType,
|
101
|
-
hookKeyName = _ref2.hookKeyName,
|
102
|
-
queryKeysName = _ref2.queryKeysName,
|
103
|
-
methodName = _ref2.methodName,
|
104
|
-
jsonschema = _ref2.jsonschema;
|
105
|
-
context.addUtil('useQuery');
|
106
|
-
context.addUtil('UseQueryOptions');
|
107
|
-
var options = context.options.reactQuery;
|
108
125
|
var keys = Object.keys((_jsonschema$propertie = jsonschema.properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {});
|
109
126
|
var args = [];
|
110
127
|
|
@@ -114,13 +131,40 @@ var createReactQueryHook = function createReactQueryHook(_ref2) {
|
|
114
131
|
})))];
|
115
132
|
}
|
116
133
|
|
134
|
+
var rejectInvalidClient = t.callExpression(t.memberExpression(t.identifier('Promise'), t.identifier('reject')), [t.newExpression(t.identifier('Error'), [t.stringLiteral('Invalid client')])]);
|
135
|
+
return t.arrowFunctionExpression([], (0, _babel.optionalConditionalExpression)(t.identifier('client'), t.callExpression(t.memberExpression(t.identifier('client'), t.identifier(methodName)), args), rejectInvalidClient, options.optionalClient), false);
|
136
|
+
}
|
137
|
+
|
138
|
+
var ENABLED_QUERY_OPTION = t.objectProperty(t.identifier('enabled'), t.logicalExpression('&&', t.unaryExpression('!', t.unaryExpression('!', t.identifier('client'))), t.conditionalExpression( // explicitly check for undefined
|
139
|
+
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))));
|
140
|
+
|
141
|
+
function buildQueryOptions(options) {
|
142
|
+
return 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
|
143
|
+
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');
|
144
|
+
}
|
145
|
+
|
146
|
+
var createReactQueryHook = function createReactQueryHook(_ref3) {
|
147
|
+
var _jsonschema$propertie2;
|
148
|
+
|
149
|
+
var context = _ref3.context,
|
150
|
+
hookName = _ref3.hookName,
|
151
|
+
hookParamsTypeName = _ref3.hookParamsTypeName,
|
152
|
+
responseType = _ref3.responseType,
|
153
|
+
hookKeyName = _ref3.hookKeyName,
|
154
|
+
queryKeysName = _ref3.queryKeysName,
|
155
|
+
methodName = _ref3.methodName,
|
156
|
+
jsonschema = _ref3.jsonschema;
|
157
|
+
context.addUtil('useQuery');
|
158
|
+
context.addUtil('UseQueryOptions');
|
159
|
+
var options = context.options.reactQuery;
|
160
|
+
var keys = Object.keys((_jsonschema$propertie2 = jsonschema.properties) !== null && _jsonschema$propertie2 !== void 0 ? _jsonschema$propertie2 : {});
|
117
161
|
var props = ['client', 'options'];
|
118
162
|
|
119
163
|
if (keys.length) {
|
120
164
|
props = ['client', 'args', 'options'];
|
121
165
|
}
|
122
166
|
|
123
|
-
var selectResponseGenericTypeName =
|
167
|
+
var selectResponseGenericTypeName = GENERIC_SELECT_RESPONSE_NAME;
|
124
168
|
var queryFunctionDeclaration = t.functionDeclaration(t.identifier(hookName), [(0, _utils.tsObjectPattern)((0, _toConsumableArray2["default"])(props.map(function (prop) {
|
125
169
|
return t.objectProperty(t.identifier(prop), t.identifier(prop), false, true);
|
126
170
|
})), t.tsTypeAnnotation(t.tsTypeReference(t.identifier(hookParamsTypeName), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(selectResponseGenericTypeName))]))))], t.blockStatement([t.returnStatement((0, _utils.callExpression)(t.identifier('useQuery'), [generateUseQueryQueryKey({
|
@@ -129,8 +173,7 @@ var createReactQueryHook = function createReactQueryHook(_ref2) {
|
|
129
173
|
methodName: methodName,
|
130
174
|
props: props,
|
131
175
|
options: options
|
132
|
-
}),
|
133
|
-
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([t.tsTypeReference(t.identifier(responseType)), t.tsTypeReference(t.identifier('Error')), t.tsTypeReference(t.identifier(selectResponseGenericTypeName))])))])); // Add the TData type parameters
|
176
|
+
}), buildQueryFn(methodName, jsonschema, options), buildQueryOptions(options)], t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(responseType)), t.tsTypeReference(t.identifier('Error')), t.tsTypeReference(t.identifier(selectResponseGenericTypeName))])))])); // Add the TData type parameters
|
134
177
|
|
135
178
|
queryFunctionDeclaration.typeParameters = t.tsTypeParameterDeclaration([t.tsTypeParameter(undefined, t.tSTypeReference(t.identifier(responseType)), selectResponseGenericTypeName)]);
|
136
179
|
return t.exportNamedDeclaration(queryFunctionDeclaration);
|
@@ -154,12 +197,12 @@ export interface Cw4UpdateMembersMutation {
|
|
154
197
|
}
|
155
198
|
```
|
156
199
|
*/
|
157
|
-
var createReactQueryMutationArgsInterface = function createReactQueryMutationArgsInterface(
|
158
|
-
var context =
|
159
|
-
ExecuteClient =
|
160
|
-
mutationHookParamsTypeName =
|
161
|
-
useMutationTypeParameter =
|
162
|
-
jsonschema =
|
200
|
+
var createReactQueryMutationArgsInterface = function createReactQueryMutationArgsInterface(_ref4) {
|
201
|
+
var context = _ref4.context,
|
202
|
+
ExecuteClient = _ref4.ExecuteClient,
|
203
|
+
mutationHookParamsTypeName = _ref4.mutationHookParamsTypeName,
|
204
|
+
useMutationTypeParameter = _ref4.useMutationTypeParameter,
|
205
|
+
jsonschema = _ref4.jsonschema;
|
163
206
|
var typedUseMutationOptions = t.tsTypeReference(t.identifier('UseMutationOptions'), useMutationTypeParameter);
|
164
207
|
var body = [(0, _utils.tsPropertySignature)(t.identifier('client'), t.tsTypeAnnotation(t.tsTypeReference(t.identifier(ExecuteClient))), false)];
|
165
208
|
var msgType = (0, _types2.getParamsTypeAnnotation)(context, jsonschema);
|
@@ -183,14 +226,14 @@ var createReactQueryMutationArgsInterface = function createReactQueryMutationArg
|
|
183
226
|
|
184
227
|
exports.createReactQueryMutationArgsInterface = createReactQueryMutationArgsInterface;
|
185
228
|
|
186
|
-
var createReactQueryMutationHooks = function createReactQueryMutationHooks(
|
187
|
-
var context =
|
188
|
-
execMsg =
|
189
|
-
contractName =
|
190
|
-
ExecuteClient =
|
229
|
+
var createReactQueryMutationHooks = function createReactQueryMutationHooks(_ref5) {
|
230
|
+
var context = _ref5.context,
|
231
|
+
execMsg = _ref5.execMsg,
|
232
|
+
contractName = _ref5.contractName,
|
233
|
+
ExecuteClient = _ref5.ExecuteClient;
|
191
234
|
// merge the user options with the defaults
|
192
235
|
return (0, _utils.getMessageProperties)(execMsg).reduce(function (m, schema) {
|
193
|
-
var _jsonschema$
|
236
|
+
var _jsonschema$propertie3, _Object$keys;
|
194
237
|
|
195
238
|
// update_members
|
196
239
|
var execMethodUnderscoreName = Object.keys(schema.properties)[0]; // updateMembers
|
@@ -201,7 +244,7 @@ var createReactQueryMutationHooks = function createReactQueryMutationHooks(_ref4
|
|
201
244
|
|
202
245
|
var mutationHookName = "use".concat(mutationHookParamsTypeName);
|
203
246
|
var jsonschema = schema.properties[execMethodUnderscoreName];
|
204
|
-
var properties = (_jsonschema$
|
247
|
+
var properties = (_jsonschema$propertie3 = jsonschema.properties) !== null && _jsonschema$propertie3 !== void 0 ? _jsonschema$propertie3 : {}; // TODO: there should be a better way to do this
|
205
248
|
|
206
249
|
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>
|
207
250
|
|
@@ -248,13 +291,13 @@ export const useCw4UpdateMembersMutation = ({ client, options }: Omit<Cw4UpdateM
|
|
248
291
|
)
|
249
292
|
```
|
250
293
|
*/
|
251
|
-
var createReactQueryMutationHook = function createReactQueryMutationHook(
|
252
|
-
var context =
|
253
|
-
mutationHookName =
|
254
|
-
mutationHookParamsTypeName =
|
255
|
-
execMethodName =
|
256
|
-
useMutationTypeParameter =
|
257
|
-
hasMsg =
|
294
|
+
var createReactQueryMutationHook = function createReactQueryMutationHook(_ref6) {
|
295
|
+
var context = _ref6.context,
|
296
|
+
mutationHookName = _ref6.mutationHookName,
|
297
|
+
mutationHookParamsTypeName = _ref6.mutationHookParamsTypeName,
|
298
|
+
execMethodName = _ref6.execMethodName,
|
299
|
+
useMutationTypeParameter = _ref6.useMutationTypeParameter,
|
300
|
+
hasMsg = _ref6.hasMsg;
|
258
301
|
context.addUtil('useMutation');
|
259
302
|
context.addUtil('UseMutationOptions');
|
260
303
|
var useMutationFunctionArgs = [(0, _babel.shorthandProperty)('client')];
|
@@ -270,11 +313,11 @@ var createReactQueryMutationHook = function createReactQueryMutationHook(_ref5)
|
|
270
313
|
|
271
314
|
exports.createReactQueryMutationHook = createReactQueryMutationHook;
|
272
315
|
|
273
|
-
function createReactQueryKeys(
|
274
|
-
var context =
|
275
|
-
queryKeysName =
|
276
|
-
camelContractName =
|
277
|
-
underscoreNames =
|
316
|
+
function createReactQueryKeys(_ref7) {
|
317
|
+
var context = _ref7.context,
|
318
|
+
queryKeysName = _ref7.queryKeysName,
|
319
|
+
camelContractName = _ref7.camelContractName,
|
320
|
+
underscoreNames = _ref7.underscoreNames;
|
278
321
|
var options = context.options.reactQuery;
|
279
322
|
var contractAddressTypeAnnotation = t.tsTypeAnnotation(options.optionalClient ? t.tsUnionType([t.tsStringKeyword(), t.tsUndefinedKeyword()]) : t.tSStringKeyword());
|
280
323
|
return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(queryKeysName), t.objectExpression([// 1: contract
|
@@ -293,29 +336,56 @@ function createReactQueryKeys(_ref6) {
|
|
293
336
|
})))))]));
|
294
337
|
}
|
295
338
|
|
296
|
-
function
|
297
|
-
var context =
|
298
|
-
|
299
|
-
|
339
|
+
function createReactQueryFactory(_ref8) {
|
340
|
+
var context = _ref8.context,
|
341
|
+
queryFactoryName = _ref8.queryFactoryName,
|
342
|
+
queryKeysName = _ref8.queryKeysName,
|
343
|
+
queryMsgs = _ref8.queryMsgs;
|
344
|
+
var options = context.options.reactQuery;
|
345
|
+
return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(queryFactoryName), t.objectExpression((0, _toConsumableArray2["default"])(queryMsgs.map(function (_ref9) {
|
346
|
+
var _jsonschema$propertie4;
|
347
|
+
|
348
|
+
var methodName = _ref9.methodName,
|
349
|
+
hookParamsTypeName = _ref9.hookParamsTypeName,
|
350
|
+
responseType = _ref9.responseType,
|
351
|
+
jsonschema = _ref9.jsonschema;
|
352
|
+
var hasArgs = Object.keys((_jsonschema$propertie4 = jsonschema.properties) !== null && _jsonschema$propertie4 !== void 0 ? _jsonschema$propertie4 : {}).length > 0;
|
353
|
+
var methodQueryOptionsFn = t.arrowFunctionExpression([(0, _utils.tsObjectPattern)([(0, _babel.shorthandProperty)('client')].concat((0, _toConsumableArray2["default"])(hasArgs ? [(0, _babel.shorthandProperty)('args')] : []), [(0, _babel.shorthandProperty)('options')]), t.tsTypeAnnotation(t.tsTypeReference(t.identifier(hookParamsTypeName), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(GENERIC_SELECT_RESPONSE_NAME))]))))], t.objectExpression([// 1: queryKey
|
354
|
+
t.objectProperty(t.identifier('queryKey'), t.callExpression(t.memberExpression(t.identifier(queryKeysName), t.identifier(methodName)), [t.optionalMemberExpression(t.identifier('client'), t.identifier('contractAddress'), false, true)].concat((0, _toConsumableArray2["default"])(hasArgs ? [t.identifier('args')] : [])))), // 2: queryFn
|
355
|
+
t.objectProperty(t.identifier('queryFn'), buildQueryFn(methodName, jsonschema, options)), // 3: spread options
|
356
|
+
t.spreadElement(t.identifier('options')), // 4. enabled
|
357
|
+
ENABLED_QUERY_OPTION]));
|
358
|
+
methodQueryOptionsFn.typeParameters = t.tsTypeParameterDeclaration([t.tsTypeParameter(undefined, t.tsTypeReference(t.identifier(responseType)), GENERIC_SELECT_RESPONSE_NAME)]);
|
359
|
+
methodQueryOptionsFn.returnType = t.tsTypeAnnotation(t.tsTypeReference(t.identifier('UseQueryOptions'), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(responseType)), t.tsTypeReference(t.identifier('Error')), t.tsTypeReference(t.identifier(GENERIC_SELECT_RESPONSE_NAME))])));
|
360
|
+
return t.objectProperty( // key id is the camel method name
|
361
|
+
t.identifier((0, _case.camel)(methodName)), methodQueryOptionsFn);
|
362
|
+
}))))]));
|
363
|
+
}
|
364
|
+
|
365
|
+
var GENERIC_SELECT_RESPONSE_NAME = 'TData';
|
366
|
+
|
367
|
+
function createReactQueryHookGenericInterface(_ref10) {
|
368
|
+
var context = _ref10.context,
|
369
|
+
QueryClient = _ref10.QueryClient,
|
370
|
+
genericQueryInterfaceName = _ref10.genericQueryInterfaceName;
|
300
371
|
var options = context.options.reactQuery;
|
301
372
|
var genericResponseTypeName = 'TResponse';
|
302
|
-
var genericSelectResponseTypeName = 'TData';
|
303
373
|
context.addUtil('UseQueryOptions'); // UseQueryOptions<TResponse, Error, TData>,
|
304
374
|
|
305
|
-
var typedUseQueryOptions = t.tsTypeReference(t.identifier('UseQueryOptions'), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(genericResponseTypeName)), t.tsTypeReference(t.identifier('Error')), t.tsTypeReference(t.identifier(
|
375
|
+
var typedUseQueryOptions = t.tsTypeReference(t.identifier('UseQueryOptions'), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(genericResponseTypeName)), t.tsTypeReference(t.identifier('Error')), t.tsTypeReference(t.identifier(GENERIC_SELECT_RESPONSE_NAME))]));
|
306
376
|
var body = [(0, _utils.tsPropertySignature)(t.identifier('client'), t.tsTypeAnnotation(options.optionalClient ? t.tsUnionType([t.tsTypeReference(t.identifier(QueryClient)), t.tsUndefinedKeyword()]) : t.tsTypeReference(t.identifier(QueryClient))), false), (0, _utils.tsPropertySignature)(t.identifier('options'), t.tsTypeAnnotation(options.version === 'v4' ? t.tSIntersectionType([(0, _babel.omitTypeReference)(typedUseQueryOptions, "'queryKey' | 'queryFn' | 'initialData'"), t.tSTypeLiteral([t.tsPropertySignature(t.identifier('initialData?'), t.tsTypeAnnotation(t.tsUndefinedKeyword()))])]) : typedUseQueryOptions), true)];
|
307
377
|
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(genericQueryInterfaceName), t.tsTypeParameterDeclaration([// 1: TResponse
|
308
378
|
t.tsTypeParameter(undefined, undefined, genericResponseTypeName), // 2: TData
|
309
|
-
t.tsTypeParameter(undefined, t.tSTypeReference(t.identifier(genericResponseTypeName)),
|
379
|
+
t.tsTypeParameter(undefined, t.tSTypeReference(t.identifier(genericResponseTypeName)), GENERIC_SELECT_RESPONSE_NAME)]), [], t.tSInterfaceBody(body)));
|
310
380
|
}
|
311
381
|
|
312
|
-
var createReactQueryHookInterface = function createReactQueryHookInterface(
|
313
|
-
var context =
|
314
|
-
QueryClient =
|
315
|
-
hookParamsTypeName =
|
316
|
-
queryInterfaceName =
|
317
|
-
responseType =
|
318
|
-
jsonschema =
|
382
|
+
var createReactQueryHookInterface = function createReactQueryHookInterface(_ref11) {
|
383
|
+
var context = _ref11.context,
|
384
|
+
QueryClient = _ref11.QueryClient,
|
385
|
+
hookParamsTypeName = _ref11.hookParamsTypeName,
|
386
|
+
queryInterfaceName = _ref11.queryInterfaceName,
|
387
|
+
responseType = _ref11.responseType,
|
388
|
+
jsonschema = _ref11.jsonschema;
|
319
389
|
// merge the user options with the defaults
|
320
390
|
var options = context.options.reactQuery;
|
321
391
|
var body = [];
|
@@ -326,17 +396,17 @@ var createReactQueryHookInterface = function createReactQueryHookInterface(_ref8
|
|
326
396
|
t.tsTypeLiteral(props))));
|
327
397
|
}
|
328
398
|
|
329
|
-
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(hookParamsTypeName), t.tsTypeParameterDeclaration([t.tSTypeParameter(undefined, undefined,
|
399
|
+
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(hookParamsTypeName), t.tsTypeParameterDeclaration([t.tSTypeParameter(undefined, undefined, GENERIC_SELECT_RESPONSE_NAME)]), [t.tSExpressionWithTypeArguments(t.identifier(queryInterfaceName), t.tsTypeParameterInstantiation([// 1: response
|
330
400
|
t.tsTypeReference(t.identifier(responseType)), // 2: select generic
|
331
|
-
t.tSTypeReference(t.identifier(
|
401
|
+
t.tSTypeReference(t.identifier(GENERIC_SELECT_RESPONSE_NAME))]))], t.tsInterfaceBody(body)));
|
332
402
|
};
|
333
403
|
|
334
404
|
exports.createReactQueryHookInterface = createReactQueryHookInterface;
|
335
405
|
|
336
406
|
var getProps = function getProps(context, jsonschema) {
|
337
|
-
var _jsonschema$
|
407
|
+
var _jsonschema$propertie5;
|
338
408
|
|
339
|
-
var keys = Object.keys((_jsonschema$
|
409
|
+
var keys = Object.keys((_jsonschema$propertie5 = jsonschema.properties) !== null && _jsonschema$propertie5 !== void 0 ? _jsonschema$propertie5 : {});
|
340
410
|
if (!keys.length) return [];
|
341
411
|
return keys.map(function (prop) {
|
342
412
|
var _getPropertyType = (0, _types2.getPropertyType)(context, jsonschema, prop),
|
@@ -347,12 +417,12 @@ var getProps = function getProps(context, jsonschema) {
|
|
347
417
|
});
|
348
418
|
};
|
349
419
|
|
350
|
-
var generateUseQueryQueryKey = function generateUseQueryQueryKey(
|
351
|
-
var hookKeyName =
|
352
|
-
queryKeysName =
|
353
|
-
methodName =
|
354
|
-
props =
|
355
|
-
options =
|
420
|
+
var generateUseQueryQueryKey = function generateUseQueryQueryKey(_ref12) {
|
421
|
+
var hookKeyName = _ref12.hookKeyName,
|
422
|
+
queryKeysName = _ref12.queryKeysName,
|
423
|
+
methodName = _ref12.methodName,
|
424
|
+
props = _ref12.props,
|
425
|
+
options = _ref12.options;
|
356
426
|
var optionalClient = options.optionalClient,
|
357
427
|
queryKeys = options.queryKeys;
|
358
428
|
var hasArgs = props.includes('args');
|
@@ -58,6 +58,19 @@ it('createReactQueryHooks', function () {
|
|
58
58
|
contractName: 'Sg721',
|
59
59
|
QueryClient: 'Sg721QueryClient'
|
60
60
|
})));
|
61
|
+
(0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
|
62
|
+
context: (0, _testUtils.makeContext)(_query_msg["default"], {
|
63
|
+
reactQuery: {
|
64
|
+
optionalClient: true,
|
65
|
+
version: 'v4',
|
66
|
+
queryKeys: true,
|
67
|
+
queryFactory: true
|
68
|
+
}
|
69
|
+
}),
|
70
|
+
queryMsg: _query_msg["default"],
|
71
|
+
contractName: 'Sg721',
|
72
|
+
QueryClient: 'Sg721QueryClient'
|
73
|
+
})));
|
61
74
|
(0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryMutationHooks)({
|
62
75
|
context: execCtx,
|
63
76
|
execMsg: _execute_msg_for__empty["default"],
|
package/main/utils/babel.js
CHANGED
@@ -125,10 +125,12 @@ var classProperty = function classProperty(name) {
|
|
125
125
|
var typeAnnotation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
126
126
|
var isReadonly = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
127
127
|
var isStatic = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
128
|
+
var noImplicitOverride = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
128
129
|
var prop = t.classProperty(t.identifier(name));
|
129
130
|
if (isReadonly) prop.readonly = true;
|
130
131
|
if (isStatic) prop["static"] = true;
|
131
132
|
if (typeAnnotation) prop.typeAnnotation = typeAnnotation;
|
133
|
+
if (noImplicitOverride) prop.override = true;
|
132
134
|
return prop;
|
133
135
|
};
|
134
136
|
|
package/module/client/client.js
CHANGED
@@ -71,10 +71,11 @@ export const createExecuteClass = (context, className, implementsClassName, exte
|
|
71
71
|
|
72
72
|
[].push.apply(blockStmt, [// client/contract set
|
73
73
|
t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('client'))), 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'))), ...bindings]);
|
74
|
+
const noImplicitOverride = context.options.client.noImplicitOverride && extendsClassName && context.options.client.execExtendsQuery;
|
74
75
|
return t.exportNamedDeclaration(classDeclaration(className, [// client
|
75
|
-
classProperty('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), // sender
|
76
|
+
classProperty('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient'))), false, false, noImplicitOverride), // sender
|
76
77
|
classProperty('sender', t.tsTypeAnnotation(t.tsStringKeyword())), // contractAddress
|
77
|
-
classProperty('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword())), // constructor
|
78
|
+
classProperty('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()), false, false, noImplicitOverride), // constructor
|
78
79
|
t.classMethod('constructor', t.identifier('constructor'), [typedIdentifier('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), typedIdentifier('sender', t.tsTypeAnnotation(t.tsStringKeyword())), typedIdentifier('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement(blockStmt)), ...methods], [t.tSExpressionWithTypeArguments(t.identifier(implementsClassName))], extendsClassName ? t.identifier(extendsClassName) : null));
|
79
80
|
};
|
80
81
|
export const createExecuteInterface = (context, className, extendsClassName, execMsg) => {
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import execute_msg_for__empty from '../../../../../__fixtures__/sg721/execute_msg_for__empty.json';
|
2
|
+
import { createExecuteClass } from '../client';
|
3
|
+
import { expectCode, makeContext } from '../../../test-utils';
|
4
|
+
const ctx = makeContext(execute_msg_for__empty);
|
5
|
+
describe('exec', () => {});
|
6
|
+
it('Impl, execExtends, noExtendsClass', () => {
|
7
|
+
ctx.options.client.noImplicitOverride = false;
|
8
|
+
ctx.options.client.execExtendsQuery = true;
|
9
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg_for__empty));
|
10
|
+
});
|
11
|
+
it('Impl, execExtends, ExtendsClass', () => {
|
12
|
+
ctx.options.client.noImplicitOverride = false;
|
13
|
+
ctx.options.client.execExtendsQuery = true;
|
14
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', 'ExtendsClassName', execute_msg_for__empty));
|
15
|
+
});
|
16
|
+
it('noImpl, execExtends, ExtendsClass', () => {
|
17
|
+
ctx.options.client.noImplicitOverride = true;
|
18
|
+
ctx.options.client.execExtendsQuery = true;
|
19
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', 'ExtendsClassName', execute_msg_for__empty));
|
20
|
+
});
|
21
|
+
it('noImpl, noExecExtends, ExtendsClass', () => {
|
22
|
+
ctx.options.client.noImplicitOverride = true;
|
23
|
+
ctx.options.client.execExtendsQuery = false;
|
24
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', 'ExtendsClassName', execute_msg_for__empty));
|
25
|
+
});
|
26
|
+
it('noImpl, noExecExtends, noExtendsClass', () => {
|
27
|
+
ctx.options.client.noImplicitOverride = true;
|
28
|
+
ctx.options.client.execExtendsQuery = false;
|
29
|
+
expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, execute_msg_for__empty));
|
30
|
+
});
|