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.
@@ -55,8 +55,16 @@ var getArrayTypeFromRef = function getArrayTypeFromRef($ref) {
55
55
  return t.tsArrayType(getTypeFromRef($ref));
56
56
  };
57
57
 
58
- var getArrayTypeFromType = function getArrayTypeFromType(type) {
59
- return t.tsArrayType(getType(type));
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 = getArrayTypeFromType(info.items.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
+ });
@@ -34,8 +34,16 @@ const getArrayTypeFromRef = $ref => {
34
34
  return t.tsArrayType(getTypeFromRef($ref));
35
35
  };
36
36
 
37
- const getArrayTypeFromType = type => {
38
- return t.tsArrayType(getType(type));
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 = getArrayTypeFromType(info.items.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.2",
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": "aafba6dadee2e5a14b304f0dd53858e8b509046d"
87
+ "gitHead": "c5fc4992d9da5f1c9da1f2c34469994dee7801df"
88
88
  }