wasm-ast-types 0.17.0 → 0.18.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,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _cwWager = _interopRequireDefault(require("../../../../../__fixtures__/wager/cw-wager.json"));
6
+
7
+ var _client = require("../client");
8
+
9
+ var _testUtils = require("../../../test-utils");
10
+
11
+ var queryCtx = (0, _testUtils.makeContext)(_cwWager["default"].query);
12
+ var executeCtx = (0, _testUtils.makeContext)(_cwWager["default"].execute);
13
+ it('query', function () {
14
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(queryCtx, _cwWager["default"].query));
15
+ });
16
+ it('execute', function () {
17
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(executeCtx, _cwWager["default"].execute));
18
+ });
19
+ it('query classes', function () {
20
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(queryCtx, 'WagerQueryClient', 'WagerReadOnlyInstance', _cwWager["default"].query));
21
+ });
22
+ it('execute classes', function () {
23
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(executeCtx, 'WagerClient', 'WagerInstance', null, _cwWager["default"].execute));
24
+ }); // it('execute classes array types', () => {
25
+ // expectCode(createExecuteClass(
26
+ // ctx,
27
+ // 'SG721Client',
28
+ // 'SG721Instance',
29
+ // null,
30
+ // wagerJson
31
+ // ))
32
+ // });
33
+ // it('execute interfaces no extends', () => {
34
+ // expectCode(createExecuteInterface(
35
+ // ctx,
36
+ // 'SG721Instance',
37
+ // null,
38
+ // wagerJson
39
+ // ))
40
+ // });
@@ -72,6 +72,12 @@ var getTypeOrRef = function getTypeOrRef(obj) {
72
72
  var getArrayTypeFromItems = function getArrayTypeFromItems(items) {
73
73
  // passing in [{"type":"string"}]
74
74
  if (Array.isArray(items)) {
75
+ var _items$;
76
+
77
+ if (((_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === 'array') {
78
+ return t.tsArrayType(t.tsArrayType(getArrayTypeFromItems(items[0])));
79
+ }
80
+
75
81
  return t.tsArrayType(t.tsArrayType(getTypeOrRef(items[0])));
76
82
  } // passing in {"items": [{"type":"string"}]}
77
83
 
@@ -164,7 +170,13 @@ var getTypeInfo = function getTypeInfo(info) {
164
170
  throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
165
171
  }
166
172
  } else {
167
- throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
173
+ if (Array.isArray(info.items)) {
174
+ type = getArrayTypeFromItems(info.items); // console.log(typeof info.items === 'object');
175
+ // console.log(Array.isArray(info.items));
176
+ // console.log(info);
177
+ } else {
178
+ throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
179
+ }
168
180
  }
169
181
  } else {
170
182
  var detect = detectType(info.type);
@@ -0,0 +1,33 @@
1
+ import wagerJson from '../../../../../__fixtures__/wager/cw-wager.json';
2
+ import { createQueryClass, createExecuteClass, createTypeInterface } from '../client';
3
+ import { expectCode, makeContext } from '../../../test-utils';
4
+ const queryCtx = makeContext(wagerJson.query);
5
+ const executeCtx = makeContext(wagerJson.execute);
6
+ it('query', () => {
7
+ expectCode(createTypeInterface(queryCtx, wagerJson.query));
8
+ });
9
+ it('execute', () => {
10
+ expectCode(createTypeInterface(executeCtx, wagerJson.execute));
11
+ });
12
+ it('query classes', () => {
13
+ expectCode(createQueryClass(queryCtx, 'WagerQueryClient', 'WagerReadOnlyInstance', wagerJson.query));
14
+ });
15
+ it('execute classes', () => {
16
+ expectCode(createExecuteClass(executeCtx, 'WagerClient', 'WagerInstance', null, wagerJson.execute));
17
+ }); // it('execute classes array types', () => {
18
+ // expectCode(createExecuteClass(
19
+ // ctx,
20
+ // 'SG721Client',
21
+ // 'SG721Instance',
22
+ // null,
23
+ // wagerJson
24
+ // ))
25
+ // });
26
+ // it('execute interfaces no extends', () => {
27
+ // expectCode(createExecuteInterface(
28
+ // ctx,
29
+ // 'SG721Instance',
30
+ // null,
31
+ // wagerJson
32
+ // ))
33
+ // });
@@ -39,6 +39,10 @@ const getTypeOrRef = obj => {
39
39
  const getArrayTypeFromItems = items => {
40
40
  // passing in [{"type":"string"}]
41
41
  if (Array.isArray(items)) {
42
+ if (items[0]?.type === 'array') {
43
+ return t.tsArrayType(t.tsArrayType(getArrayTypeFromItems(items[0])));
44
+ }
45
+
42
46
  return t.tsArrayType(t.tsArrayType(getTypeOrRef(items[0])));
43
47
  } // passing in {"items": [{"type":"string"}]}
44
48
 
@@ -124,7 +128,13 @@ export const getTypeInfo = info => {
124
128
  throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
125
129
  }
126
130
  } else {
127
- throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
131
+ if (Array.isArray(info.items)) {
132
+ type = getArrayTypeFromItems(info.items); // console.log(typeof info.items === 'object');
133
+ // console.log(Array.isArray(info.items));
134
+ // console.log(info);
135
+ } else {
136
+ throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
137
+ }
128
138
  }
129
139
  } else {
130
140
  const detect = detectType(info.type);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wasm-ast-types",
3
- "version": "0.17.0",
3
+ "version": "0.18.1",
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",
@@ -88,5 +88,5 @@
88
88
  "case": "1.6.3",
89
89
  "deepmerge": "4.2.2"
90
90
  },
91
- "gitHead": "cffa2acebb86f3c1f96fb00c4abae5ba0987e63e"
91
+ "gitHead": "e6daf701507cad95127613a815fc0fca1a883f8a"
92
92
  }
@@ -0,0 +1,132 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`execute 1`] = `"export type ExecuteMsg = ExecuteMsg;"`;
4
+
5
+ exports[`execute classes 1`] = `
6
+ "export class WagerClient implements WagerInstance {
7
+ client: SigningCosmWasmClient;
8
+ sender: string;
9
+ contractAddress: string;
10
+
11
+ constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string) {
12
+ this.client = client;
13
+ this.sender = sender;
14
+ this.contractAddress = contractAddress;
15
+ this.updateConfig = this.updateConfig.bind(this);
16
+ this.setWinner = this.setWinner.bind(this);
17
+ this.wager = this.wager.bind(this);
18
+ this.cancel = this.cancel.bind(this);
19
+ }
20
+
21
+ updateConfig = async ({
22
+ params
23
+ }: {
24
+ params: ParamInfo;
25
+ }, fee: number | StdFee | \\"auto\\" = \\"auto\\", memo?: string, funds?: Coin[]): Promise<ExecuteResult> => {
26
+ return await this.client.execute(this.sender, this.contractAddress, {
27
+ update_config: {
28
+ params
29
+ }
30
+ }, fee, memo, funds);
31
+ };
32
+ setWinner = async ({
33
+ currentPrices,
34
+ prevPrices,
35
+ wagerKey
36
+ }: {
37
+ currentPrices: number[][];
38
+ prevPrices: number[][];
39
+ wagerKey: Addr[][][][];
40
+ }, fee: number | StdFee | \\"auto\\" = \\"auto\\", memo?: string, funds?: Coin[]): Promise<ExecuteResult> => {
41
+ return await this.client.execute(this.sender, this.contractAddress, {
42
+ set_winner: {
43
+ current_prices: currentPrices,
44
+ prev_prices: prevPrices,
45
+ wager_key: wagerKey
46
+ }
47
+ }, fee, memo, funds);
48
+ };
49
+ wager = async ({
50
+ againstCurrencies,
51
+ currency,
52
+ expiry,
53
+ token
54
+ }: {
55
+ againstCurrencies: Currency[];
56
+ currency: Currency;
57
+ expiry: number;
58
+ token: Addr[][];
59
+ }, fee: number | StdFee | \\"auto\\" = \\"auto\\", memo?: string, funds?: Coin[]): Promise<ExecuteResult> => {
60
+ return await this.client.execute(this.sender, this.contractAddress, {
61
+ wager: {
62
+ against_currencies: againstCurrencies,
63
+ currency,
64
+ expiry,
65
+ token
66
+ }
67
+ }, fee, memo, funds);
68
+ };
69
+ cancel = async ({
70
+ token
71
+ }: {
72
+ token: Addr[][];
73
+ }, fee: number | StdFee | \\"auto\\" = \\"auto\\", memo?: string, funds?: Coin[]): Promise<ExecuteResult> => {
74
+ return await this.client.execute(this.sender, this.contractAddress, {
75
+ cancel: {
76
+ token
77
+ }
78
+ }, fee, memo, funds);
79
+ };
80
+ }"
81
+ `;
82
+
83
+ exports[`query 1`] = `"export type QueryMsg = QueryMsg;"`;
84
+
85
+ exports[`query classes 1`] = `
86
+ "export class WagerQueryClient implements WagerReadOnlyInstance {
87
+ client: CosmWasmClient;
88
+ contractAddress: string;
89
+
90
+ constructor(client: CosmWasmClient, contractAddress: string) {
91
+ this.client = client;
92
+ this.contractAddress = contractAddress;
93
+ this.wagers = this.wagers.bind(this);
94
+ this.wager = this.wager.bind(this);
95
+ this.tokenStatus = this.tokenStatus.bind(this);
96
+ this.config = this.config.bind(this);
97
+ }
98
+
99
+ wagers = async (): Promise<WagersResponse> => {
100
+ return this.client.queryContractSmart(this.contractAddress, {
101
+ wagers: {}
102
+ });
103
+ };
104
+ wager = async ({
105
+ token
106
+ }: {
107
+ token: Addr[][];
108
+ }): Promise<WagerResponse> => {
109
+ return this.client.queryContractSmart(this.contractAddress, {
110
+ wager: {
111
+ token
112
+ }
113
+ });
114
+ };
115
+ tokenStatus = async ({
116
+ token
117
+ }: {
118
+ token: Addr[][];
119
+ }): Promise<TokenStatusResponse> => {
120
+ return this.client.queryContractSmart(this.contractAddress, {
121
+ token_status: {
122
+ token
123
+ }
124
+ });
125
+ };
126
+ config = async (): Promise<ConfigResponse> => {
127
+ return this.client.queryContractSmart(this.contractAddress, {
128
+ config: {}
129
+ });
130
+ };
131
+ }"
132
+ `;
@@ -0,0 +1,63 @@
1
+ import wagerJson from '../../../../../__fixtures__/wager/cw-wager.json';
2
+ import {
3
+ createQueryClass,
4
+ createExecuteClass,
5
+ createExecuteInterface,
6
+ createTypeInterface
7
+ } from '../client'
8
+ import { expectCode, makeContext } from '../../../test-utils';
9
+
10
+ const queryCtx = makeContext(wagerJson.query);
11
+ const executeCtx = makeContext(wagerJson.execute);
12
+
13
+ it('query', () => {
14
+ expectCode(createTypeInterface(
15
+ queryCtx,
16
+ wagerJson.query
17
+ ))
18
+ })
19
+
20
+ it('execute', () => {
21
+ expectCode(createTypeInterface(
22
+ executeCtx,
23
+ wagerJson.execute
24
+ ))
25
+ })
26
+
27
+ it('query classes', () => {
28
+ expectCode(createQueryClass(
29
+ queryCtx,
30
+ 'WagerQueryClient',
31
+ 'WagerReadOnlyInstance',
32
+ wagerJson.query
33
+ ))
34
+ });
35
+
36
+ it('execute classes', () => {
37
+ expectCode(createExecuteClass(
38
+ executeCtx,
39
+ 'WagerClient',
40
+ 'WagerInstance',
41
+ null,
42
+ wagerJson.execute
43
+ ))
44
+ });
45
+
46
+ // it('execute classes array types', () => {
47
+ // expectCode(createExecuteClass(
48
+ // ctx,
49
+ // 'SG721Client',
50
+ // 'SG721Instance',
51
+ // null,
52
+ // wagerJson
53
+ // ))
54
+ // });
55
+
56
+ // it('execute interfaces no extends', () => {
57
+ // expectCode(createExecuteInterface(
58
+ // ctx,
59
+ // 'SG721Instance',
60
+ // null,
61
+ // wagerJson
62
+ // ))
63
+ // });
@@ -48,6 +48,15 @@ const getTypeOrRef = (obj) => {
48
48
  const getArrayTypeFromItems = (items) => {
49
49
  // passing in [{"type":"string"}]
50
50
  if (Array.isArray(items)) {
51
+ if (items[0]?.type === 'array') {
52
+ return t.tsArrayType(
53
+ t.tsArrayType(
54
+ getArrayTypeFromItems(
55
+ items[0]
56
+ )
57
+ )
58
+ );
59
+ }
51
60
  return t.tsArrayType(
52
61
  t.tsArrayType(
53
62
  getTypeOrRef(items[0])
@@ -147,7 +156,14 @@ export const getTypeInfo = (info: JSONSchema) => {
147
156
  throw new Error('[info.items] case not handled by transpiler. contact maintainers.')
148
157
  }
149
158
  } else {
150
- throw new Error('[info.items] case not handled by transpiler. contact maintainers.')
159
+ if (Array.isArray(info.items)) {
160
+ type = getArrayTypeFromItems(info.items);
161
+ // console.log(typeof info.items === 'object');
162
+ // console.log(Array.isArray(info.items));
163
+ // console.log(info);
164
+ } else {
165
+ throw new Error('[info.items] case not handled by transpiler. contact maintainers.')
166
+ }
151
167
  }
152
168
  } else {
153
169
  const detect = detectType(info.type);