wasm-ast-types 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- package/main/utils/types.js +11 -5
- package/main/wasm.arrays.spec.js +30 -0
- package/module/utils/types.js +11 -5
- package/module/wasm.arrays.spec.js +24 -0
- package/package.json +2 -2
package/main/utils/types.js
CHANGED
@@ -55,8 +55,16 @@ var getArrayTypeFromRef = function getArrayTypeFromRef($ref) {
|
|
55
55
|
return t.tsArrayType(getTypeFromRef($ref));
|
56
56
|
};
|
57
57
|
|
58
|
-
var
|
59
|
-
|
58
|
+
var getArrayTypeFromItems = function getArrayTypeFromItems(items) {
|
59
|
+
if (items.type === 'array') {
|
60
|
+
if (Array.isArray(items.items)) {
|
61
|
+
return t.tsArrayType(t.tsArrayType(getType(items.items[0].type)));
|
62
|
+
} else {
|
63
|
+
return t.tsArrayType(getArrayTypeFromItems(items.items));
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
return t.tsArrayType(getType(items.type));
|
60
68
|
};
|
61
69
|
|
62
70
|
var getType = function getType(type) {
|
@@ -69,8 +77,6 @@ var getType = function getType(type) {
|
|
69
77
|
|
70
78
|
case 'integer':
|
71
79
|
return t.tsNumberKeyword();
|
72
|
-
// case 'object':
|
73
|
-
// return t.tsObjectKeyword();
|
74
80
|
|
75
81
|
default:
|
76
82
|
throw new Error('contact maintainers [unknown type]: ' + type);
|
@@ -129,7 +135,7 @@ var getPropertyType = function getPropertyType(schema, prop) {
|
|
129
135
|
} else if (info.items.title) {
|
130
136
|
type = t.tsArrayType(t.tsTypeReference(t.identifier(info.items.title)));
|
131
137
|
} else if (info.items.type) {
|
132
|
-
type =
|
138
|
+
type = getArrayTypeFromItems(info.items);
|
133
139
|
} else {
|
134
140
|
throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
|
135
141
|
}
|
@@ -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 _schema = _interopRequireDefault(require("./../../../__fixtures__/arrays/schema/schema.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)(_schema["default"]));
|
21
|
+
});
|
22
|
+
it('query classes', function () {
|
23
|
+
expectCode((0, _wasm.createQueryClass)('SG721QueryClient', 'SG721ReadOnlyInstance', _schema["default"]));
|
24
|
+
});
|
25
|
+
it('execute classes array types', function () {
|
26
|
+
expectCode((0, _wasm.createExecuteClass)('SG721Client', 'SG721Instance', null, _schema["default"]));
|
27
|
+
});
|
28
|
+
it('execute interfaces no extends', function () {
|
29
|
+
expectCode((0, _wasm.createExecuteInterface)('SG721Instance', null, _schema["default"]));
|
30
|
+
});
|
package/module/utils/types.js
CHANGED
@@ -34,8 +34,16 @@ const getArrayTypeFromRef = $ref => {
|
|
34
34
|
return t.tsArrayType(getTypeFromRef($ref));
|
35
35
|
};
|
36
36
|
|
37
|
-
const
|
38
|
-
|
37
|
+
const getArrayTypeFromItems = items => {
|
38
|
+
if (items.type === 'array') {
|
39
|
+
if (Array.isArray(items.items)) {
|
40
|
+
return t.tsArrayType(t.tsArrayType(getType(items.items[0].type)));
|
41
|
+
} else {
|
42
|
+
return t.tsArrayType(getArrayTypeFromItems(items.items));
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
return t.tsArrayType(getType(items.type));
|
39
47
|
};
|
40
48
|
|
41
49
|
export const getType = type => {
|
@@ -48,8 +56,6 @@ export const getType = type => {
|
|
48
56
|
|
49
57
|
case 'integer':
|
50
58
|
return t.tsNumberKeyword();
|
51
|
-
// case 'object':
|
52
|
-
// return t.tsObjectKeyword();
|
53
59
|
|
54
60
|
default:
|
55
61
|
throw new Error('contact maintainers [unknown type]: ' + type);
|
@@ -101,7 +107,7 @@ export const getPropertyType = (schema, prop) => {
|
|
101
107
|
} else if (info.items.title) {
|
102
108
|
type = t.tsArrayType(t.tsTypeReference(t.identifier(info.items.title)));
|
103
109
|
} else if (info.items.type) {
|
104
|
-
type =
|
110
|
+
type = getArrayTypeFromItems(info.items);
|
105
111
|
} else {
|
106
112
|
throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
|
107
113
|
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import generate from '@babel/generator';
|
2
|
+
import message from './../../../__fixtures__/arrays/schema/schema.json';
|
3
|
+
import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from './wasm';
|
4
|
+
|
5
|
+
const expectCode = ast => {
|
6
|
+
expect(generate(ast).code).toMatchSnapshot();
|
7
|
+
};
|
8
|
+
|
9
|
+
const printCode = ast => {
|
10
|
+
console.log(generate(ast).code);
|
11
|
+
};
|
12
|
+
|
13
|
+
it('execute_msg_for__empty', () => {
|
14
|
+
expectCode(createTypeInterface(message));
|
15
|
+
});
|
16
|
+
it('query classes', () => {
|
17
|
+
expectCode(createQueryClass('SG721QueryClient', 'SG721ReadOnlyInstance', message));
|
18
|
+
});
|
19
|
+
it('execute classes array types', () => {
|
20
|
+
expectCode(createExecuteClass('SG721Client', 'SG721Instance', null, message));
|
21
|
+
});
|
22
|
+
it('execute interfaces no extends', () => {
|
23
|
+
expectCode(createExecuteInterface('SG721Instance', null, message));
|
24
|
+
});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "wasm-ast-types",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.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",
|
@@ -84,5 +84,5 @@
|
|
84
84
|
"ast-stringify": "0.1.0",
|
85
85
|
"case": "1.6.3"
|
86
86
|
},
|
87
|
-
"gitHead": "
|
87
|
+
"gitHead": "c5fc4992d9da5f1c9da1f2c34469994dee7801df"
|
88
88
|
}
|