wasm-ast-types 0.2.0 → 0.2.3
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/wasm.js +33 -4
- package/module/wasm.js +27 -3
- package/package.json +2 -2
package/main/wasm.js
CHANGED
@@ -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.propertySignature = exports.getPropertyType = exports.createWasmQueryMethod = exports.createWasmExecMethod = exports.createTypedObjectParams = exports.createTypeOrInterface = exports.createTypeInterface = exports.createQueryInterface = exports.createQueryClass = exports.createPropertyFunctionWithObjectParams = exports.createExecuteInterface = exports.createExecuteClass = void 0;
|
10
|
+
exports.propertySignature = exports.identifier = exports.getPropertyType = exports.createWasmQueryMethod = exports.createWasmExecMethod = exports.createTypedObjectParams = exports.createTypeOrInterface = exports.createTypeInterface = exports.createQueryInterface = exports.createQueryClass = exports.createPropertyFunctionWithObjectParamsForExec = exports.createPropertyFunctionWithObjectParams = exports.createExecuteInterface = exports.createExecuteClass = void 0;
|
11
11
|
|
12
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
13
13
|
|
@@ -48,6 +48,16 @@ var getArrayTypeFromType = function getArrayTypeFromType(type) {
|
|
48
48
|
return t.tsArrayType(getType(type));
|
49
49
|
};
|
50
50
|
|
51
|
+
var identifier = function identifier(name, typeAnnotation) {
|
52
|
+
var optional = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
53
|
+
var type = t.identifier(name);
|
54
|
+
type.typeAnnotation = typeAnnotation;
|
55
|
+
type.optional = optional;
|
56
|
+
return type;
|
57
|
+
};
|
58
|
+
|
59
|
+
exports.identifier = identifier;
|
60
|
+
|
51
61
|
var getType = function getType(type) {
|
52
62
|
switch (type) {
|
53
63
|
case 'string':
|
@@ -180,6 +190,12 @@ var createQueryClass = function createQueryClass(className, implementsClassName,
|
|
180
190
|
|
181
191
|
exports.createQueryClass = createQueryClass;
|
182
192
|
|
193
|
+
var tsTypeOperator = function tsTypeOperator(typeAnnotation, operator) {
|
194
|
+
var obj = t.tsTypeOperator(typeAnnotation);
|
195
|
+
obj.operator = operator;
|
196
|
+
return obj;
|
197
|
+
};
|
198
|
+
|
183
199
|
var createWasmExecMethod = function createWasmExecMethod(jsonschema) {
|
184
200
|
var _jsonschema$propertie2;
|
185
201
|
|
@@ -190,8 +206,9 @@ var createWasmExecMethod = function createWasmExecMethod(jsonschema) {
|
|
190
206
|
var args = Object.keys(properties).map(function (prop) {
|
191
207
|
return t.objectProperty(t.identifier(prop), t.identifier((0, _case.camel)(prop)), false, prop === (0, _case.camel)(prop));
|
192
208
|
});
|
209
|
+
var constantParams = [t.assignmentPattern(identifier('fee', t.tsTypeAnnotation(t.tsUnionType([t.tSNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), false), t.stringLiteral('auto')), identifier('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), identifier('funds', t.tsTypeAnnotation(tsTypeOperator(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
|
193
210
|
return t.classProperty(t.identifier(methodName), (0, _utils.arrowFunctionExpression)(obj ? [// props
|
194
|
-
obj] :
|
211
|
+
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
|
195
212
|
t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tSTypeReference(t.identifier('ExecuteResult'))]))), true));
|
196
213
|
};
|
197
214
|
|
@@ -229,7 +246,7 @@ var createExecuteInterface = function createExecuteInterface(className, extendsC
|
|
229
246
|
var methods = (0, _utils.getMessageProperties)(execMsg).map(function (jsonschema) {
|
230
247
|
var underscoreName = Object.keys(jsonschema.properties)[0];
|
231
248
|
var methodName = (0, _case.camel)(underscoreName);
|
232
|
-
return
|
249
|
+
return createPropertyFunctionWithObjectParamsForExec(methodName, 'ExecuteResult', jsonschema.properties[underscoreName]);
|
233
250
|
});
|
234
251
|
var extendsAst = extendsClassName ? [t.tSExpressionWithTypeArguments(t.identifier(extendsClassName))] : [];
|
235
252
|
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, extendsAst, t.tSInterfaceBody([// contract address
|
@@ -294,12 +311,24 @@ var createPropertyFunctionWithObjectParams = function createPropertyFunctionWith
|
|
294
311
|
|
295
312
|
exports.createPropertyFunctionWithObjectParams = createPropertyFunctionWithObjectParams;
|
296
313
|
|
314
|
+
var createPropertyFunctionWithObjectParamsForExec = function createPropertyFunctionWithObjectParamsForExec(methodName, responseType, jsonschema) {
|
315
|
+
var obj = createTypedObjectParams(jsonschema);
|
316
|
+
var fixedParams = [identifier('fee', t.tsTypeAnnotation(t.tsUnionType([t.tsNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), true), identifier('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), identifier('funds', t.tsTypeAnnotation(tsTypeOperator(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
|
317
|
+
var func = {
|
318
|
+
type: 'TSFunctionType',
|
319
|
+
typeAnnotation: (0, _utils.promiseTypeAnnotation)(responseType),
|
320
|
+
parameters: obj ? [obj].concat(fixedParams) : fixedParams
|
321
|
+
};
|
322
|
+
return t.tSPropertySignature(t.identifier(methodName), t.tsTypeAnnotation(func));
|
323
|
+
};
|
324
|
+
|
325
|
+
exports.createPropertyFunctionWithObjectParamsForExec = createPropertyFunctionWithObjectParamsForExec;
|
326
|
+
|
297
327
|
var createQueryInterface = function createQueryInterface(className, queryMsg) {
|
298
328
|
var methods = (0, _utils.getMessageProperties)(queryMsg).map(function (jsonschema) {
|
299
329
|
var underscoreName = Object.keys(jsonschema.properties)[0];
|
300
330
|
var methodName = (0, _case.camel)(underscoreName);
|
301
331
|
var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
|
302
|
-
var obj = createTypedObjectParams(jsonschema.properties[underscoreName]);
|
303
332
|
return createPropertyFunctionWithObjectParams(methodName, responseType, jsonschema.properties[underscoreName]);
|
304
333
|
});
|
305
334
|
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)))));
|
package/module/wasm.js
CHANGED
@@ -27,6 +27,13 @@ const getArrayTypeFromType = type => {
|
|
27
27
|
return t.tsArrayType(getType(type));
|
28
28
|
};
|
29
29
|
|
30
|
+
export const identifier = (name, typeAnnotation, optional = false) => {
|
31
|
+
const type = t.identifier(name);
|
32
|
+
type.typeAnnotation = typeAnnotation;
|
33
|
+
type.optional = optional;
|
34
|
+
return type;
|
35
|
+
};
|
36
|
+
|
30
37
|
const getType = type => {
|
31
38
|
switch (type) {
|
32
39
|
case 'string':
|
@@ -138,6 +145,13 @@ export const createQueryClass = (className, implementsClassName, queryMsg) => {
|
|
138
145
|
t.classMethod('constructor', t.identifier('constructor'), [typedIdentifier('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), typedIdentifier('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement([// client/contract set
|
139
146
|
t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('client')), t.identifier('client'))), t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.thisExpression(), t.identifier('contractAddress')), t.identifier('contractAddress'))), ...bindings])), ...methods], [t.tSExpressionWithTypeArguments(t.identifier(implementsClassName))]));
|
140
147
|
};
|
148
|
+
|
149
|
+
const tsTypeOperator = (typeAnnotation, operator) => {
|
150
|
+
const obj = t.tsTypeOperator(typeAnnotation);
|
151
|
+
obj.operator = operator;
|
152
|
+
return obj;
|
153
|
+
};
|
154
|
+
|
141
155
|
export const createWasmExecMethod = jsonschema => {
|
142
156
|
const underscoreName = Object.keys(jsonschema.properties)[0];
|
143
157
|
const methodName = camel(underscoreName);
|
@@ -146,8 +160,9 @@ export const createWasmExecMethod = jsonschema => {
|
|
146
160
|
const args = Object.keys(properties).map(prop => {
|
147
161
|
return t.objectProperty(t.identifier(prop), t.identifier(camel(prop)), false, prop === camel(prop));
|
148
162
|
});
|
163
|
+
const constantParams = [t.assignmentPattern(identifier('fee', t.tsTypeAnnotation(t.tsUnionType([t.tSNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), false), t.stringLiteral('auto')), identifier('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), identifier('funds', t.tsTypeAnnotation(tsTypeOperator(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
|
149
164
|
return t.classProperty(t.identifier(methodName), arrowFunctionExpression(obj ? [// props
|
150
|
-
obj] :
|
165
|
+
obj, ...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([...args]))]), t.identifier('fee'), t.identifier('memo'), t.identifier('funds')])))]), // return type
|
151
166
|
t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tSTypeReference(t.identifier('ExecuteResult'))]))), true));
|
152
167
|
};
|
153
168
|
export const createExecuteClass = (className, implementsClassName, extendsClassName, execMsg) => {
|
@@ -175,7 +190,7 @@ export const createExecuteInterface = (className, extendsClassName, execMsg) =>
|
|
175
190
|
const methods = getMessageProperties(execMsg).map(jsonschema => {
|
176
191
|
const underscoreName = Object.keys(jsonschema.properties)[0];
|
177
192
|
const methodName = camel(underscoreName);
|
178
|
-
return
|
193
|
+
return createPropertyFunctionWithObjectParamsForExec(methodName, 'ExecuteResult', jsonschema.properties[underscoreName]);
|
179
194
|
});
|
180
195
|
const extendsAst = extendsClassName ? [t.tSExpressionWithTypeArguments(t.identifier(extendsClassName))] : [];
|
181
196
|
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, extendsAst, t.tSInterfaceBody([// contract address
|
@@ -224,12 +239,21 @@ export const createPropertyFunctionWithObjectParams = (methodName, responseType,
|
|
224
239
|
};
|
225
240
|
return t.tSPropertySignature(t.identifier(methodName), t.tsTypeAnnotation(func));
|
226
241
|
};
|
242
|
+
export const createPropertyFunctionWithObjectParamsForExec = (methodName, responseType, jsonschema) => {
|
243
|
+
const obj = createTypedObjectParams(jsonschema);
|
244
|
+
const fixedParams = [identifier('fee', t.tsTypeAnnotation(t.tsUnionType([t.tsNumberKeyword(), t.tsTypeReference(t.identifier('StdFee')), t.tsLiteralType(t.stringLiteral('auto'))])), true), identifier('memo', t.tsTypeAnnotation(t.tsStringKeyword()), true), identifier('funds', t.tsTypeAnnotation(tsTypeOperator(t.tsArrayType(t.tsTypeReference(t.identifier('Coin'))), 'readonly')), true)];
|
245
|
+
const func = {
|
246
|
+
type: 'TSFunctionType',
|
247
|
+
typeAnnotation: promiseTypeAnnotation(responseType),
|
248
|
+
parameters: obj ? [obj, ...fixedParams] : fixedParams
|
249
|
+
};
|
250
|
+
return t.tSPropertySignature(t.identifier(methodName), t.tsTypeAnnotation(func));
|
251
|
+
};
|
227
252
|
export const createQueryInterface = (className, queryMsg) => {
|
228
253
|
const methods = getMessageProperties(queryMsg).map(jsonschema => {
|
229
254
|
const underscoreName = Object.keys(jsonschema.properties)[0];
|
230
255
|
const methodName = camel(underscoreName);
|
231
256
|
const responseType = pascal(`${methodName}Response`);
|
232
|
-
const obj = createTypedObjectParams(jsonschema.properties[underscoreName]);
|
233
257
|
return createPropertyFunctionWithObjectParams(methodName, responseType, jsonschema.properties[underscoreName]);
|
234
258
|
});
|
235
259
|
return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(className), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), ...methods])));
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "wasm-ast-types",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.3",
|
4
4
|
"description": "CosmWasm TypeScript AST generation",
|
5
5
|
"author": "Dan Lynch <pyramation@gmail.com>",
|
6
6
|
"homepage": "https://github.com/pyramation/cosmwasm-typescript-gen/tree/master/packages/wasm-ast-types#readme",
|
@@ -85,5 +85,5 @@
|
|
85
85
|
"ast-stringify": "0.1.0",
|
86
86
|
"case": "1.6.3"
|
87
87
|
},
|
88
|
-
"gitHead": "
|
88
|
+
"gitHead": "e7cd5b9e8bc60161c28db9a74f3c372ddd0fc6b1"
|
89
89
|
}
|