wasm-ast-types 0.4.2 → 0.4.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.
@@ -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
  }