wasm-ast-types 0.2.5 → 0.3.1

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.
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.getType = exports.getPropertyType = exports.forEmptyNameFix = exports.createTypedObjectParams = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var t = _interopRequireWildcard(require("@babel/types"));
17
+
18
+ var _case = require("case");
19
+
20
+ var _babel = require("./babel");
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ var forEmptyNameFix = function forEmptyNameFix(name) {
27
+ if (name.endsWith('For_Empty')) {
28
+ return name.replace(/For_Empty$/, '_for_Empty');
29
+ }
30
+
31
+ return name;
32
+ };
33
+
34
+ exports.forEmptyNameFix = forEmptyNameFix;
35
+
36
+ var getTypeFromRef = function getTypeFromRef($ref) {
37
+ switch ($ref) {
38
+ case '#/definitions/Binary':
39
+ return t.tsTypeReference(t.identifier('Binary'));
40
+
41
+ default:
42
+ if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
43
+ return t.tsTypeReference(t.identifier($ref.replace('#/definitions/', '')));
44
+ }
45
+
46
+ throw new Error('what is $ref: ' + $ref);
47
+ }
48
+ };
49
+
50
+ var getArrayTypeFromRef = function getArrayTypeFromRef($ref) {
51
+ return t.tsArrayType(getTypeFromRef($ref));
52
+ };
53
+
54
+ var getArrayTypeFromType = function getArrayTypeFromType(type) {
55
+ return t.tsArrayType(getType(type));
56
+ };
57
+
58
+ var getType = function getType(type) {
59
+ switch (type) {
60
+ case 'string':
61
+ return t.tsStringKeyword();
62
+
63
+ case 'boolean':
64
+ return t.tSBooleanKeyword();
65
+
66
+ case 'integer':
67
+ return t.tsNumberKeyword();
68
+ // case 'object':
69
+ // return t.tsObjectKeyword();
70
+
71
+ default:
72
+ throw new Error('contact maintainers [unknown type]: ' + type);
73
+ }
74
+ };
75
+
76
+ exports.getType = getType;
77
+
78
+ var getPropertyType = function getPropertyType(schema, prop) {
79
+ var _schema$properties, _schema$required, _schema$required2;
80
+
81
+ var props = (_schema$properties = schema.properties) !== null && _schema$properties !== void 0 ? _schema$properties : {};
82
+ var info = props[prop];
83
+ var type = null;
84
+ var optional = !((_schema$required = schema.required) !== null && _schema$required !== void 0 && _schema$required.includes(prop));
85
+
86
+ if (info.allOf && info.allOf.length === 1) {
87
+ info = info.allOf[0];
88
+ }
89
+
90
+ if (typeof info.$ref === 'string') {
91
+ type = getTypeFromRef(info.$ref);
92
+ }
93
+
94
+ if (Array.isArray(info.anyOf)) {
95
+ // assuming 2nd is null, but let's check to ensure
96
+ if (info.anyOf.length !== 2) {
97
+ throw new Error('case not handled by transpiler. contact maintainers.');
98
+ }
99
+
100
+ var _info$anyOf = (0, _slicedToArray2["default"])(info.anyOf, 2),
101
+ nullableType = _info$anyOf[0],
102
+ nullType = _info$anyOf[1];
103
+
104
+ if ((nullType === null || nullType === void 0 ? void 0 : nullType.type) !== 'null') {
105
+ throw new Error('[nullableType.type]: case not handled by transpiler. contact maintainers.');
106
+ }
107
+
108
+ if (!(nullableType !== null && nullableType !== void 0 && nullableType.$ref)) {
109
+ if (nullableType.title) {
110
+ type = t.tsTypeReference(t.identifier(nullableType.title));
111
+ } else {
112
+ throw new Error('[nullableType.title] case not handled by transpiler. contact maintainers.');
113
+ }
114
+ } else {
115
+ type = getTypeFromRef(nullableType === null || nullableType === void 0 ? void 0 : nullableType.$ref);
116
+ }
117
+
118
+ optional = true;
119
+ }
120
+
121
+ if (typeof info.type === 'string') {
122
+ if (info.type === 'array') {
123
+ if (info.items.$ref) {
124
+ type = getArrayTypeFromRef(info.items.$ref);
125
+ } else if (info.items.title) {
126
+ type = t.tsArrayType(t.tsTypeReference(t.identifier(info.items.title)));
127
+ } else if (info.items.type) {
128
+ type = getArrayTypeFromType(info.items.type);
129
+ } else {
130
+ throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
131
+ }
132
+ } else {
133
+ type = getType(info.type);
134
+ }
135
+ }
136
+
137
+ if (Array.isArray(info.type)) {
138
+ // assuming 2nd is null, but let's check to ensure
139
+ if (info.type.length !== 2) {
140
+ throw new Error('please report this to maintainers (field type): ' + JSON.stringify(info, null, 2));
141
+ }
142
+
143
+ var _info$type = (0, _slicedToArray2["default"])(info.type, 2),
144
+ _nullableType = _info$type[0],
145
+ _nullType = _info$type[1];
146
+
147
+ if (_nullType !== 'null') {
148
+ throw new Error('please report this to maintainers (field type): ' + JSON.stringify(info, null, 2));
149
+ }
150
+
151
+ if (_nullableType === 'array') {
152
+ type = t.tsArrayType(getType(info.items.type));
153
+ } else {
154
+ type = getType(_nullableType);
155
+ }
156
+
157
+ optional = true;
158
+ }
159
+
160
+ if (!type) {
161
+ throw new Error('cannot find type for ' + JSON.stringify(info));
162
+ }
163
+
164
+ if ((_schema$required2 = schema.required) !== null && _schema$required2 !== void 0 && _schema$required2.includes(prop)) {
165
+ optional = false;
166
+ }
167
+
168
+ return {
169
+ type: type,
170
+ optional: optional
171
+ };
172
+ };
173
+
174
+ exports.getPropertyType = getPropertyType;
175
+
176
+ var createTypedObjectParams = function createTypedObjectParams(jsonschema) {
177
+ var _jsonschema$propertie;
178
+
179
+ var camelize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
180
+ var keys = Object.keys((_jsonschema$propertie = jsonschema.properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {});
181
+ if (!keys.length) return;
182
+ var typedParams = keys.map(function (prop) {
183
+ if (jsonschema.properties[prop].type === 'object') {
184
+ if (jsonschema.properties[prop].title) {
185
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(forEmptyNameFix(jsonschema.properties[prop].title)))));
186
+ } else {
187
+ throw new Error('createTypedObjectParams() contact maintainer');
188
+ }
189
+ }
190
+
191
+ if (Array.isArray(jsonschema.properties[prop].allOf)) {
192
+ var _jsonschema$required;
193
+
194
+ var isOptional = !((_jsonschema$required = jsonschema.required) !== null && _jsonschema$required !== void 0 && _jsonschema$required.includes(prop));
195
+ var unionTypes = jsonschema.properties[prop].allOf.map(function (el) {
196
+ if (el.title) return el.title;
197
+ return el.type;
198
+ });
199
+ var uniqUnionTypes = (0, _toConsumableArray2["default"])(new Set(unionTypes));
200
+
201
+ if (uniqUnionTypes.length === 1) {
202
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(forEmptyNameFix(uniqUnionTypes[0])))), isOptional);
203
+ } else {
204
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsUnionType(uniqUnionTypes.map(function (typ) {
205
+ return t.tsTypeReference(t.identifier(forEmptyNameFix(typ)));
206
+ }))), isOptional);
207
+ }
208
+ } else if (Array.isArray(jsonschema.properties[prop].oneOf)) {
209
+ var _jsonschema$required2;
210
+
211
+ var oneOf = JSON.stringify(jsonschema.properties[prop].oneOf, null, 2);
212
+
213
+ var _isOptional = !((_jsonschema$required2 = jsonschema.required) !== null && _jsonschema$required2 !== void 0 && _jsonschema$required2.includes(prop));
214
+
215
+ var _unionTypes = jsonschema.properties[prop].oneOf.map(function (el) {
216
+ if (el.title) return el.title;
217
+ return el.type;
218
+ });
219
+
220
+ var _uniqUnionTypes = (0, _toConsumableArray2["default"])(new Set(_unionTypes));
221
+
222
+ if (_uniqUnionTypes.length === 1) {
223
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(forEmptyNameFix(_uniqUnionTypes[0])))), _isOptional);
224
+ } else {
225
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsUnionType(_uniqUnionTypes.map(function (typ) {
226
+ return t.tsTypeReference(t.identifier(forEmptyNameFix(typ)));
227
+ }))), _isOptional);
228
+ }
229
+ }
230
+
231
+ try {
232
+ getPropertyType(jsonschema, prop);
233
+ } catch (e) {
234
+ console.log(e);
235
+ console.log(jsonschema, prop);
236
+ }
237
+
238
+ var _getPropertyType = getPropertyType(jsonschema, prop),
239
+ type = _getPropertyType.type,
240
+ optional = _getPropertyType.optional;
241
+
242
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(type), optional);
243
+ });
244
+ var params = keys.map(function (prop) {
245
+ return t.objectProperty(camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), false, true);
246
+ });
247
+ var obj = t.objectPattern((0, _toConsumableArray2["default"])(params));
248
+ obj.typeAnnotation = t.tsTypeAnnotation(t.tsTypeLiteral((0, _toConsumableArray2["default"])(typedParams)));
249
+ return obj;
250
+ };
251
+
252
+ exports.createTypedObjectParams = createTypedObjectParams;
package/main/wasm.js CHANGED
@@ -7,149 +7,23 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
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;
10
+ exports.createWasmQueryMethod = exports.createWasmExecMethod = 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
 
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
14
  var t = _interopRequireWildcard(require("@babel/types"));
17
15
 
18
16
  var _case = require("case");
19
17
 
20
18
  var _utils = require("./utils");
21
19
 
22
- 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); }
23
-
24
- 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; }
25
-
26
- var getTypeFromRef = function getTypeFromRef($ref) {
27
- switch ($ref) {
28
- case '#/definitions/Binary':
29
- return t.tsTypeReference(t.identifier('Binary'));
30
-
31
- default:
32
- if ($ref.startsWith('#/definitions/')) {
33
- return t.tsTypeReference(t.identifier($ref.replace('#/definitions/', '')));
34
- }
35
-
36
- throw new Error('what is $ref: ' + $ref);
37
- }
38
- };
39
-
40
- var getArrayTypeFromRef = function getArrayTypeFromRef($ref) {
41
- return t.tsArrayType(getTypeFromRef($ref));
42
- };
43
-
44
- var getArrayTypeFromType = function getArrayTypeFromType(type) {
45
- return t.tsArrayType(getType(type));
46
- };
47
-
48
- var identifier = function identifier(name, typeAnnotation) {
49
- var optional = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
50
- var type = t.identifier(name);
51
- type.typeAnnotation = typeAnnotation;
52
- type.optional = optional;
53
- return type;
54
- };
55
-
56
- exports.identifier = identifier;
57
-
58
- var getType = function getType(type) {
59
- switch (type) {
60
- case 'string':
61
- return t.tsStringKeyword();
62
-
63
- case 'boolean':
64
- return t.tSBooleanKeyword();
65
-
66
- case 'integer':
67
- return t.tsNumberKeyword();
20
+ var _types2 = require("./utils/types");
68
21
 
69
- default:
70
- throw new Error('what is type: ' + type);
71
- }
72
- };
73
-
74
- var getPropertyType = function getPropertyType(schema, prop) {
75
- var _schema$properties, _schema$required, _schema$required2;
76
-
77
- var props = (_schema$properties = schema.properties) !== null && _schema$properties !== void 0 ? _schema$properties : {};
78
- var info = props[prop];
79
- var type = null;
80
- var optional = (_schema$required = schema.required) === null || _schema$required === void 0 ? void 0 : _schema$required.includes(prop);
81
-
82
- if (info.allOf && info.allOf.length === 1) {
83
- info = info.allOf[0];
84
- }
85
-
86
- if (typeof info.$ref === 'string') {
87
- type = getTypeFromRef(info.$ref);
88
- }
89
-
90
- if (Array.isArray(info.anyOf)) {
91
- // assuming 2nd is null, but let's check to ensure
92
- if (info.anyOf.length !== 2) {
93
- throw new Error('case not handled by transpiler. contact maintainers.');
94
- }
95
-
96
- var _info$anyOf = (0, _slicedToArray2["default"])(info.anyOf, 2),
97
- nullableType = _info$anyOf[0],
98
- nullType = _info$anyOf[1];
99
-
100
- if ((nullType === null || nullType === void 0 ? void 0 : nullType.type) !== 'null') {
101
- throw new Error('case not handled by transpiler. contact maintainers.');
102
- }
103
-
104
- type = getTypeFromRef(nullableType === null || nullableType === void 0 ? void 0 : nullableType.$ref);
105
- optional = true;
106
- }
107
-
108
- if (typeof info.type === 'string') {
109
- if (info.type === 'array') {
110
- if (info.items.$ref) {
111
- type = getArrayTypeFromRef(info.items.$ref);
112
- } else {
113
- type = getArrayTypeFromType(info.items.type);
114
- }
115
- } else {
116
- type = getType(info.type);
117
- }
118
- }
22
+ var _babel = require("./utils/babel");
119
23
 
120
- if (Array.isArray(info.type)) {
121
- // assuming 2nd is null, but let's check to ensure
122
- if (info.type.length !== 2) {
123
- throw new Error('case not handled by transpiler. contact maintainers.');
124
- }
125
-
126
- var _info$type = (0, _slicedToArray2["default"])(info.type, 2),
127
- _nullableType = _info$type[0],
128
- _nullType = _info$type[1];
129
-
130
- if (_nullType !== 'null') {
131
- throw new Error('case not handled by transpiler. contact maintainers.');
132
- }
133
-
134
- type = getType(_nullableType);
135
- optional = true;
136
- }
137
-
138
- if (!type) {
139
- throw new Error('cannot find type for ' + JSON.stringify(info));
140
- }
141
-
142
- if ((_schema$required2 = schema.required) !== null && _schema$required2 !== void 0 && _schema$required2.includes(prop)) {
143
- optional = false;
144
- }
145
-
146
- return {
147
- type: type,
148
- optional: optional
149
- };
150
- };
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); }
151
25
 
152
- exports.getPropertyType = getPropertyType;
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; }
153
27
 
154
28
  var createWasmQueryMethod = function createWasmQueryMethod(jsonschema) {
155
29
  var _jsonschema$propertie;
@@ -158,7 +32,7 @@ var createWasmQueryMethod = function createWasmQueryMethod(jsonschema) {
158
32
  var methodName = (0, _case.camel)(underscoreName);
159
33
  var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
160
34
  var properties = (_jsonschema$propertie = jsonschema.properties[underscoreName].properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {};
161
- var obj = createTypedObjectParams(jsonschema.properties[underscoreName]);
35
+ var obj = (0, _types2.createTypedObjectParams)(jsonschema.properties[underscoreName]);
162
36
  var args = Object.keys(properties).map(function (prop) {
163
37
  return t.objectProperty(t.identifier(prop), t.identifier((0, _case.camel)(prop)), false, true);
164
38
  });
@@ -187,23 +61,17 @@ var createQueryClass = function createQueryClass(className, implementsClassName,
187
61
 
188
62
  exports.createQueryClass = createQueryClass;
189
63
 
190
- var tsTypeOperator = function tsTypeOperator(typeAnnotation, operator) {
191
- var obj = t.tsTypeOperator(typeAnnotation);
192
- obj.operator = operator;
193
- return obj;
194
- };
195
-
196
64
  var createWasmExecMethod = function createWasmExecMethod(jsonschema) {
197
65
  var _jsonschema$propertie2;
198
66
 
199
67
  var underscoreName = Object.keys(jsonschema.properties)[0];
200
68
  var methodName = (0, _case.camel)(underscoreName);
201
69
  var properties = (_jsonschema$propertie2 = jsonschema.properties[underscoreName].properties) !== null && _jsonschema$propertie2 !== void 0 ? _jsonschema$propertie2 : {};
202
- var obj = createTypedObjectParams(jsonschema.properties[underscoreName]);
70
+ var obj = (0, _types2.createTypedObjectParams)(jsonschema.properties[underscoreName]);
203
71
  var args = Object.keys(properties).map(function (prop) {
204
72
  return t.objectProperty(t.identifier(prop), t.identifier((0, _case.camel)(prop)), false, prop === (0, _case.camel)(prop));
205
73
  });
206
- 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)];
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)];
207
75
  return t.classProperty(t.identifier(methodName), (0, _utils.arrowFunctionExpression)(obj ? [// props
208
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
209
77
  t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tSTypeReference(t.identifier('ExecuteResult'))]))), true));
@@ -253,51 +121,8 @@ var createExecuteInterface = function createExecuteInterface(className, extendsC
253
121
 
254
122
  exports.createExecuteInterface = createExecuteInterface;
255
123
 
256
- var propertySignature = function propertySignature(name, typeAnnotation) {
257
- var optional = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
258
- // prop.leadingComments = [{
259
- // type: 'Comment',
260
- // value: ' Data on the token itself'
261
- // }];
262
- // prop.leadingComments = [{
263
- // type: 'CommentBlock',
264
- // value: '* Data on the token itself'
265
- // }];
266
- return {
267
- type: 'TSPropertySignature',
268
- key: t.identifier(name),
269
- typeAnnotation: typeAnnotation,
270
- optional: optional
271
- };
272
- };
273
-
274
- exports.propertySignature = propertySignature;
275
-
276
- var createTypedObjectParams = function createTypedObjectParams(jsonschema) {
277
- var _jsonschema$propertie3;
278
-
279
- var camelize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
280
- var keys = Object.keys((_jsonschema$propertie3 = jsonschema.properties) !== null && _jsonschema$propertie3 !== void 0 ? _jsonschema$propertie3 : {});
281
- if (!keys.length) return;
282
- var typedParams = keys.map(function (prop) {
283
- var _getPropertyType = getPropertyType(jsonschema, prop),
284
- type = _getPropertyType.type,
285
- optional = _getPropertyType.optional;
286
-
287
- return propertySignature(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(type), optional);
288
- });
289
- var params = keys.map(function (prop) {
290
- return t.objectProperty(camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), false, true);
291
- });
292
- var obj = t.objectPattern((0, _toConsumableArray2["default"])(params));
293
- obj.typeAnnotation = t.tsTypeAnnotation(t.tsTypeLiteral((0, _toConsumableArray2["default"])(typedParams)));
294
- return obj;
295
- };
296
-
297
- exports.createTypedObjectParams = createTypedObjectParams;
298
-
299
124
  var createPropertyFunctionWithObjectParams = function createPropertyFunctionWithObjectParams(methodName, responseType, jsonschema) {
300
- var obj = createTypedObjectParams(jsonschema);
125
+ var obj = (0, _types2.createTypedObjectParams)(jsonschema);
301
126
  var func = {
302
127
  type: 'TSFunctionType',
303
128
  typeAnnotation: (0, _utils.promiseTypeAnnotation)(responseType),
@@ -309,8 +134,8 @@ var createPropertyFunctionWithObjectParams = function createPropertyFunctionWith
309
134
  exports.createPropertyFunctionWithObjectParams = createPropertyFunctionWithObjectParams;
310
135
 
311
136
  var createPropertyFunctionWithObjectParamsForExec = function createPropertyFunctionWithObjectParamsForExec(methodName, responseType, jsonschema) {
312
- var obj = createTypedObjectParams(jsonschema);
313
- 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)];
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)];
314
139
  var func = {
315
140
  type: 'TSFunctionType',
316
141
  typeAnnotation: (0, _utils.promiseTypeAnnotation)(responseType),
@@ -334,18 +159,22 @@ var createQueryInterface = function createQueryInterface(className, queryMsg) {
334
159
  exports.createQueryInterface = createQueryInterface;
335
160
 
336
161
  var createTypeOrInterface = function createTypeOrInterface(Type, jsonschema) {
337
- var _jsonschema$propertie4;
162
+ var _jsonschema$propertie3;
338
163
 
339
164
  if (jsonschema.type !== 'object') {
340
- return t.exportNamedDeclaration(t.tsTypeAliasDeclaration(t.identifier(Type), null, getType(jsonschema.type)));
165
+ if (!jsonschema.type) {
166
+ return t.exportNamedDeclaration(t.tsTypeAliasDeclaration(t.identifier(Type), null, t.tsTypeReference(t.identifier((0, _types2.forEmptyNameFix)(jsonschema.title)))));
167
+ }
168
+
169
+ return t.exportNamedDeclaration(t.tsTypeAliasDeclaration(t.identifier(Type), null, (0, _types2.getType)(jsonschema.type)));
341
170
  }
342
171
 
343
- var props = Object.keys((_jsonschema$propertie4 = jsonschema.properties) !== null && _jsonschema$propertie4 !== void 0 ? _jsonschema$propertie4 : {}).map(function (prop) {
344
- var _getPropertyType2 = getPropertyType(jsonschema, prop),
345
- type = _getPropertyType2.type,
346
- optional = _getPropertyType2.optional;
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),
174
+ type = _getPropertyType.type,
175
+ optional = _getPropertyType.optional;
347
176
 
348
- return propertySignature((0, _case.camel)(prop), t.tsTypeAnnotation(type), optional);
177
+ return (0, _babel.propertySignature)((0, _case.camel)(prop), t.tsTypeAnnotation(type), optional);
349
178
  });
350
179
  return t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier(Type), null, [], t.tsInterfaceBody((0, _toConsumableArray2["default"])(props))));
351
180
  };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _generator = _interopRequireDefault(require("@babel/generator"));
6
+
7
+ var _execute_msg_for__empty = _interopRequireDefault(require("./../../../__fixtures__/sg721/execute_msg_for__empty.json"));
8
+
9
+ var _wasm = require("./wasm");
10
+
11
+ var expectCode = function expectCode(ast) {
12
+ expect((0, _generator["default"])(ast).code).toMatchSnapshot();
13
+ };
14
+
15
+ var printCode = function printCode(ast) {
16
+ console.log((0, _generator["default"])(ast).code);
17
+ };
18
+
19
+ it('execute_msg_for__empty', function () {
20
+ expectCode((0, _wasm.createTypeInterface)(_execute_msg_for__empty["default"]));
21
+ });
22
+ it('query classes', function () {
23
+ expectCode((0, _wasm.createQueryClass)('SG721QueryClient', 'SG721ReadOnlyInstance', _execute_msg_for__empty["default"]));
24
+ });
25
+ it('execute classes array types', function () {
26
+ expectCode((0, _wasm.createExecuteClass)('SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
27
+ });
28
+ it('execute interfaces no extends', function () {
29
+ expectCode((0, _wasm.createExecuteInterface)('SG721Instance', null, _execute_msg_for__empty["default"]));
30
+ });
package/main/wasm.spec.js CHANGED
@@ -4,31 +4,33 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  var _generator = _interopRequireDefault(require("@babel/generator"));
6
6
 
7
- var _query_msg = _interopRequireDefault(require("./__fixtures__/schema/query_msg.json"));
7
+ var _execute_msg = _interopRequireDefault(require("./../../../__fixtures__/cw-named-groups/execute_msg.json"));
8
8
 
9
- var _execute_msg_for__empty = _interopRequireDefault(require("./__fixtures__/schema/execute_msg_for__empty.json"));
9
+ var _query_msg = _interopRequireDefault(require("./../../../__fixtures__/basic/query_msg.json"));
10
10
 
11
- var _approval_response = _interopRequireDefault(require("./__fixtures__/schema/approval_response.json"));
11
+ var _execute_msg_for__empty = _interopRequireDefault(require("./../../../__fixtures__/basic/execute_msg_for__empty.json"));
12
12
 
13
- var _all_nft_info_response = _interopRequireDefault(require("./__fixtures__/schema/all_nft_info_response.json"));
13
+ var _approval_response = _interopRequireDefault(require("./../../../__fixtures__/basic/approval_response.json"));
14
14
 
15
- var _approvals_response = _interopRequireDefault(require("./__fixtures__/schema/approvals_response.json"));
15
+ var _all_nft_info_response = _interopRequireDefault(require("./../../../__fixtures__/basic/all_nft_info_response.json"));
16
16
 
17
- var _collection_info_response = _interopRequireDefault(require("./__fixtures__/schema/collection_info_response.json"));
17
+ var _approvals_response = _interopRequireDefault(require("./../../../__fixtures__/basic/approvals_response.json"));
18
18
 
19
- var _contract_info_response = _interopRequireDefault(require("./__fixtures__/schema/contract_info_response.json"));
19
+ var _collection_info_response = _interopRequireDefault(require("./../../../__fixtures__/basic/collection_info_response.json"));
20
20
 
21
- var _instantiate_msg = _interopRequireDefault(require("./__fixtures__/schema/instantiate_msg.json"));
21
+ var _contract_info_response = _interopRequireDefault(require("./../../../__fixtures__/basic/contract_info_response.json"));
22
22
 
23
- var _nft_info_response = _interopRequireDefault(require("./__fixtures__/schema/nft_info_response.json"));
23
+ var _instantiate_msg = _interopRequireDefault(require("./../../../__fixtures__/basic/instantiate_msg.json"));
24
24
 
25
- var _num_tokens_response = _interopRequireDefault(require("./__fixtures__/schema/num_tokens_response.json"));
25
+ var _nft_info_response = _interopRequireDefault(require("./../../../__fixtures__/basic/nft_info_response.json"));
26
26
 
27
- var _operators_response = _interopRequireDefault(require("./__fixtures__/schema/operators_response.json"));
27
+ var _num_tokens_response = _interopRequireDefault(require("./../../../__fixtures__/basic/num_tokens_response.json"));
28
28
 
29
- var _owner_of_response = _interopRequireDefault(require("./__fixtures__/schema/owner_of_response.json"));
29
+ var _operators_response = _interopRequireDefault(require("./../../../__fixtures__/basic/operators_response.json"));
30
30
 
31
- var _tokens_response = _interopRequireDefault(require("./__fixtures__/schema/tokens_response.json"));
31
+ var _owner_of_response = _interopRequireDefault(require("./../../../__fixtures__/basic/owner_of_response.json"));
32
+
33
+ var _tokens_response = _interopRequireDefault(require("./../../../__fixtures__/basic/tokens_response.json"));
32
34
 
33
35
  var _wasm = require("./wasm");
34
36
 
@@ -82,6 +84,9 @@ it('execute classes', function () {
82
84
  it('execute classes no extends', function () {
83
85
  expectCode((0, _wasm.createExecuteClass)('SG721Client', 'SG721Instance', null, _execute_msg_for__empty["default"]));
84
86
  });
87
+ it('execute classes array types', function () {
88
+ expectCode((0, _wasm.createExecuteClass)('SG721Client', 'SG721Instance', null, _execute_msg["default"]));
89
+ });
85
90
  it('execute interfaces no extends', function () {
86
91
  expectCode((0, _wasm.createExecuteInterface)('SG721Instance', null, _execute_msg_for__empty["default"]));
87
92
  });