wasm-ast-types 0.26.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. package/LICENSE-Apache +201 -0
  2. package/LICENSE-MIT +21 -0
  3. package/README.md +1 -1
  4. package/{types/client → client}/client.d.ts +2 -2
  5. package/client/client.js +275 -0
  6. package/client/index.js +17 -0
  7. package/{types/context → context}/context.d.ts +9 -22
  8. package/context/context.js +114 -0
  9. package/{types/context → context}/imports.d.ts +9 -8
  10. package/context/imports.js +166 -0
  11. package/context/index.js +18 -0
  12. package/esm/client/client.js +238 -0
  13. package/esm/client/index.js +1 -0
  14. package/esm/context/context.js +104 -0
  15. package/esm/context/imports.js +136 -0
  16. package/{module → esm}/context/index.js +1 -1
  17. package/{src/index.ts → esm/index.js} +0 -1
  18. package/esm/message-builder/message-builder.js +64 -0
  19. package/esm/message-composer/message-composer.js +105 -0
  20. package/esm/provider/provider.js +97 -0
  21. package/esm/react-query/react-query.js +458 -0
  22. package/esm/recoil/recoil.js +110 -0
  23. package/esm/utils/babel.js +231 -0
  24. package/esm/utils/constants.js +20 -0
  25. package/esm/utils/ref.js +4 -0
  26. package/esm/utils/types.js +343 -0
  27. package/{types/index.d.ts → index.d.ts} +0 -1
  28. package/index.js +24 -0
  29. package/message-builder/index.js +17 -0
  30. package/{types/message-builder → message-builder}/message-builder.d.ts +1 -1
  31. package/message-builder/message-builder.js +91 -0
  32. package/message-composer/index.d.ts +1 -0
  33. package/message-composer/index.js +17 -0
  34. package/{types/message-composer → message-composer}/message-composer.d.ts +1 -1
  35. package/message-composer/message-composer.js +133 -0
  36. package/package.json +19 -68
  37. package/provider/index.d.ts +1 -0
  38. package/provider/index.js +17 -0
  39. package/provider/provider.js +127 -0
  40. package/react-query/index.d.ts +1 -0
  41. package/react-query/index.js +17 -0
  42. package/{types/react-query → react-query}/react-query.d.ts +2 -3
  43. package/react-query/react-query.js +490 -0
  44. package/recoil/index.d.ts +1 -0
  45. package/recoil/index.js +17 -0
  46. package/{types/recoil → recoil}/recoil.d.ts +1 -1
  47. package/recoil/recoil.js +140 -0
  48. package/{types/utils → utils}/babel.d.ts +9 -8
  49. package/utils/babel.js +285 -0
  50. package/utils/constants.js +46 -0
  51. package/utils/index.js +26 -0
  52. package/{types/utils → utils}/ref.d.ts +1 -1
  53. package/utils/ref.js +8 -0
  54. package/{types/utils → utils}/types.d.ts +8 -8
  55. package/utils/types.js +379 -0
  56. package/main/client/client.js +0 -196
  57. package/main/client/index.js +0 -16
  58. package/main/client/test/ts-client.account-nfts.spec.js +0 -28
  59. package/main/client/test/ts-client.arrays-ref.spec.js +0 -19
  60. package/main/client/test/ts-client.arrays.spec.js +0 -26
  61. package/main/client/test/ts-client.cw-named-groups.test.js +0 -19
  62. package/main/client/test/ts-client.cw-proposal-single.test.js +0 -23
  63. package/main/client/test/ts-client.empty-enums.spec.js +0 -13
  64. package/main/client/test/ts-client.issue-101.spec.js +0 -23
  65. package/main/client/test/ts-client.issue-103.test.js +0 -44
  66. package/main/client/test/ts-client.issue-71.test.js +0 -81
  67. package/main/client/test/ts-client.issue-98.test.js +0 -28
  68. package/main/client/test/ts-client.issues.test.js +0 -81
  69. package/main/client/test/ts-client.overrides.spec.js +0 -33
  70. package/main/client/test/ts-client.sg721.spec.js +0 -19
  71. package/main/client/test/ts-client.spec.js +0 -87
  72. package/main/client/test/ts-client.vectis.spec.js +0 -46
  73. package/main/client/test/ts-client.wager.spec.js +0 -39
  74. package/main/context/context.js +0 -162
  75. package/main/context/imports.js +0 -159
  76. package/main/context/index.js +0 -27
  77. package/main/index.js +0 -104
  78. package/main/message-builder/index.js +0 -16
  79. package/main/message-builder/message-builder.js +0 -62
  80. package/main/message-builder/message-builder.spec.js +0 -20
  81. package/main/message-composer/index.js +0 -16
  82. package/main/message-composer/message-composer.js +0 -86
  83. package/main/message-composer/message-composer.spec.js +0 -23
  84. package/main/provider/index.js +0 -16
  85. package/main/provider/provider.js +0 -71
  86. package/main/provider/provider.spec.js +0 -60
  87. package/main/react-query/index.js +0 -16
  88. package/main/react-query/react-query.js +0 -413
  89. package/main/react-query/react-query.spec.js +0 -91
  90. package/main/recoil/index.js +0 -16
  91. package/main/recoil/recoil.js +0 -61
  92. package/main/recoil/recoil.spec.js +0 -20
  93. package/main/types.js +0 -4
  94. package/main/utils/babel.js +0 -282
  95. package/main/utils/babel.spec.js +0 -109
  96. package/main/utils/constants.js +0 -26
  97. package/main/utils/index.js +0 -65
  98. package/main/utils/ref.js +0 -12
  99. package/main/utils/types.js +0 -343
  100. package/module/client/client.js +0 -166
  101. package/module/client/index.js +0 -1
  102. package/module/client/test/ts-client.account-nfts.spec.js +0 -25
  103. package/module/client/test/ts-client.arrays-ref.spec.js +0 -16
  104. package/module/client/test/ts-client.arrays.spec.js +0 -23
  105. package/module/client/test/ts-client.cw-named-groups.test.js +0 -16
  106. package/module/client/test/ts-client.cw-proposal-single.test.js +0 -20
  107. package/module/client/test/ts-client.empty-enums.spec.js +0 -10
  108. package/module/client/test/ts-client.issue-101.spec.js +0 -22
  109. package/module/client/test/ts-client.issue-103.test.js +0 -41
  110. package/module/client/test/ts-client.issue-71.test.js +0 -21
  111. package/module/client/test/ts-client.issue-98.test.js +0 -25
  112. package/module/client/test/ts-client.issues.test.js +0 -21
  113. package/module/client/test/ts-client.overrides.spec.js +0 -30
  114. package/module/client/test/ts-client.sg721.spec.js +0 -16
  115. package/module/client/test/ts-client.spec.js +0 -84
  116. package/module/client/test/ts-client.vectis.spec.js +0 -43
  117. package/module/client/test/ts-client.wager.spec.js +0 -36
  118. package/module/context/context.js +0 -116
  119. package/module/context/imports.js +0 -127
  120. package/module/index.js +0 -9
  121. package/module/message-builder/index.js +0 -1
  122. package/module/message-builder/message-builder.js +0 -52
  123. package/module/message-builder/message-builder.spec.js +0 -17
  124. package/module/message-composer/index.js +0 -1
  125. package/module/message-composer/message-composer.js +0 -70
  126. package/module/message-composer/message-composer.spec.js +0 -20
  127. package/module/provider/index.js +0 -1
  128. package/module/provider/provider.js +0 -45
  129. package/module/provider/provider.spec.js +0 -58
  130. package/module/react-query/index.js +0 -1
  131. package/module/react-query/react-query.js +0 -403
  132. package/module/react-query/react-query.spec.js +0 -85
  133. package/module/recoil/index.js +0 -1
  134. package/module/recoil/recoil.js +0 -46
  135. package/module/recoil/recoil.spec.js +0 -14
  136. package/module/types.js +0 -3
  137. package/module/utils/babel.js +0 -203
  138. package/module/utils/babel.spec.js +0 -70
  139. package/module/utils/constants.js +0 -12
  140. package/module/utils/index.js +0 -6
  141. package/module/utils/ref.js +0 -4
  142. package/module/utils/types.js +0 -301
  143. package/src/client/client.ts +0 -584
  144. package/src/client/index.ts +0 -1
  145. package/src/client/test/__snapshots__/ts-client.account-nfts.spec.ts.snap +0 -497
  146. package/src/client/test/__snapshots__/ts-client.arrays-ref.spec.ts.snap +0 -452
  147. package/src/client/test/__snapshots__/ts-client.arrays.spec.ts.snap +0 -101
  148. package/src/client/test/__snapshots__/ts-client.cw-named-groups.test.ts.snap +0 -141
  149. package/src/client/test/__snapshots__/ts-client.cw-proposal-single.test.ts.snap +0 -341
  150. package/src/client/test/__snapshots__/ts-client.empty-enums.spec.ts.snap +0 -20
  151. package/src/client/test/__snapshots__/ts-client.issue-101.spec.ts.snap +0 -47
  152. package/src/client/test/__snapshots__/ts-client.issue-103.test.ts.snap +0 -79
  153. package/src/client/test/__snapshots__/ts-client.issue-71.test.ts.snap +0 -432
  154. package/src/client/test/__snapshots__/ts-client.issue-98.test.ts.snap +0 -117
  155. package/src/client/test/__snapshots__/ts-client.issues.test.ts.snap +0 -984
  156. package/src/client/test/__snapshots__/ts-client.overrides.spec.ts.snap +0 -709
  157. package/src/client/test/__snapshots__/ts-client.sg721.spec.ts.snap +0 -350
  158. package/src/client/test/__snapshots__/ts-client.spec.ts.snap +0 -723
  159. package/src/client/test/__snapshots__/ts-client.vectis.spec.ts.snap +0 -337
  160. package/src/client/test/__snapshots__/ts-client.wager.spec.ts.snap +0 -132
  161. package/src/client/test/ts-client.account-nfts.spec.ts +0 -55
  162. package/src/client/test/ts-client.arrays-ref.spec.ts +0 -48
  163. package/src/client/test/ts-client.arrays.spec.ts +0 -58
  164. package/src/client/test/ts-client.cw-named-groups.test.ts +0 -48
  165. package/src/client/test/ts-client.cw-proposal-single.test.ts +0 -50
  166. package/src/client/test/ts-client.empty-enums.spec.ts +0 -28
  167. package/src/client/test/ts-client.issue-101.spec.ts +0 -37
  168. package/src/client/test/ts-client.issue-103.test.ts +0 -106
  169. package/src/client/test/ts-client.issue-71.test.ts +0 -51
  170. package/src/client/test/ts-client.issue-98.test.ts +0 -55
  171. package/src/client/test/ts-client.issues.test.ts +0 -52
  172. package/src/client/test/ts-client.overrides.spec.ts +0 -74
  173. package/src/client/test/ts-client.sg721.spec.ts +0 -46
  174. package/src/client/test/ts-client.spec.ts +0 -166
  175. package/src/client/test/ts-client.vectis.spec.ts +0 -97
  176. package/src/client/test/ts-client.wager.spec.ts +0 -63
  177. package/src/context/context.ts +0 -229
  178. package/src/context/imports.ts +0 -195
  179. package/src/context/index.ts +0 -2
  180. package/src/message-builder/__snapshots__/message-builder.spec.ts.snap +0 -270
  181. package/src/message-builder/message-builder.spec.ts +0 -24
  182. package/src/message-builder/message-builder.ts +0 -119
  183. package/src/message-composer/__snapshots__/message-composer.spec.ts.snap +0 -331
  184. package/src/message-composer/index.ts +0 -1
  185. package/src/message-composer/message-composer.spec.ts +0 -46
  186. package/src/message-composer/message-composer.ts +0 -262
  187. package/src/provider/__snapshots__/provider.spec.ts.snap +0 -49
  188. package/src/provider/index.ts +0 -1
  189. package/src/provider/provider.spec.ts +0 -81
  190. package/src/provider/provider.ts +0 -237
  191. package/src/react-query/__snapshots__/react-query.spec.ts.snap +0 -1359
  192. package/src/react-query/index.ts +0 -1
  193. package/src/react-query/react-query.spec.ts +0 -116
  194. package/src/react-query/react-query.ts +0 -1072
  195. package/src/recoil/__snapshots__/recoil.spec.ts.snap +0 -203
  196. package/src/recoil/index.ts +0 -1
  197. package/src/recoil/recoil.spec.ts +0 -38
  198. package/src/recoil/recoil.ts +0 -307
  199. package/src/types.ts +0 -44
  200. package/src/utils/__snapshots__/babel.spec.ts.snap +0 -75
  201. package/src/utils/babel.spec.ts +0 -511
  202. package/src/utils/babel.ts +0 -352
  203. package/src/utils/constants.ts +0 -37
  204. package/src/utils/ref.ts +0 -6
  205. package/src/utils/types.ts +0 -478
  206. package/types/types.d.ts +0 -41
  207. /package/{types/client → client}/index.d.ts +0 -0
  208. /package/{types/context → context}/index.d.ts +0 -0
  209. /package/{src/message-builder/index.ts → esm/message-builder/index.js} +0 -0
  210. /package/{types/message-composer/index.d.ts → esm/message-composer/index.js} +0 -0
  211. /package/{types/provider/index.d.ts → esm/provider/index.js} +0 -0
  212. /package/{types/react-query/index.d.ts → esm/react-query/index.js} +0 -0
  213. /package/{types/recoil/index.d.ts → esm/recoil/index.js} +0 -0
  214. /package/{src/utils/index.ts → esm/utils/index.js} +0 -0
  215. /package/{types/message-builder → message-builder}/index.d.ts +0 -0
  216. /package/{types/provider → provider}/provider.d.ts +0 -0
  217. /package/{types/utils → utils}/constants.d.ts +0 -0
  218. /package/{types/utils → utils}/index.d.ts +0 -0
@@ -1,478 +0,0 @@
1
- import * as t from '@babel/types';
2
- import { camel, pascal, snake } from 'case';
3
- import { propertySignature } from './babel';
4
- import { TSTypeAnnotation } from '@babel/types';
5
- import { RenderContext } from '../context';
6
- import { JSONSchema } from '../types';
7
-
8
- export function getResponseType(
9
- context: RenderContext,
10
- underscoreName: string
11
- ) {
12
- const methodName = camel(underscoreName);
13
- return pascal(
14
- context.contract?.responses?.[underscoreName]?.title
15
- ??
16
- // after v1.1 is adopted, we can deprecate this and require the above response
17
- `${methodName}Response`
18
- );
19
- };
20
-
21
- const getTypeStrFromRef = ($ref) => {
22
- if ($ref?.startsWith('#/definitions/')) {
23
- return $ref.replace('#/definitions/', '');
24
- }
25
- throw new Error('what is $ref: ' + $ref);
26
- }
27
-
28
- export const getTypeFromRef = ($ref) => {
29
- return t.tsTypeReference(t.identifier(getTypeStrFromRef($ref)))
30
- }
31
-
32
- const getArrayTypeFromRef = ($ref) => {
33
- return t.tsArrayType(
34
- getTypeFromRef($ref)
35
- );
36
- }
37
-
38
- const getTypeOrRef = (obj) => {
39
- if (obj.type) {
40
- return getType(obj.type)
41
- }
42
- if (obj.$ref) {
43
- return getTypeFromRef(obj.$ref);
44
- }
45
- throw new Error('contact maintainers cannot find type for ' + obj)
46
- }
47
-
48
- const getArrayTypeFromItems = (items) => {
49
- // passing in [{"type":"string"}]
50
- if (Array.isArray(items)) {
51
- if (items[0]?.type === 'array') {
52
- return getArrayTypeFromItems(
53
- items[0]
54
- );
55
- }
56
- return t.tsArrayType(
57
- t.tsArrayType(
58
- getTypeOrRef(items[0])
59
- )
60
- );
61
- }
62
-
63
- // passing in {"items": [{"type":"string"}]}
64
- const detect = detectType(items.type);
65
-
66
- if (detect.type === 'array') {
67
- if (Array.isArray(items.items)) {
68
- return t.tsArrayType(
69
- t.tsArrayType(
70
- getTypeOrRef(items.items[0])
71
- )
72
- );
73
- } else {
74
- return t.tsArrayType(
75
- getArrayTypeFromItems(
76
- items.items
77
- )
78
- );
79
- }
80
- }
81
-
82
-
83
- return t.tsArrayType(
84
- getType(detect.type)
85
- );
86
- }
87
-
88
-
89
- export const detectType = (type: string | string[]) => {
90
- let optional = false;
91
- let theType = '';
92
- if (Array.isArray(type)) {
93
- if (type.length !== 2) {
94
- throw new Error('[getType(array length)] case not handled by transpiler. contact maintainers.')
95
- }
96
- const [nullableType, nullType] = type;
97
- if (nullType !== 'null') {
98
- throw new Error('[getType(null)] case not handled by transpiler. contact maintainers.')
99
- }
100
- theType = nullableType;
101
- optional = true;
102
- } else {
103
- theType = type;
104
- }
105
-
106
- return {
107
- type: theType,
108
- optional
109
- };
110
- }
111
-
112
- export const getTypeInfo = (info: JSONSchema) => {
113
- let type = undefined;
114
- let optional = undefined;
115
-
116
- if (Array.isArray(info.anyOf)) {
117
- // assuming 2nd is null, but let's check to ensure
118
- if (info.anyOf.length !== 2) {
119
- throw new Error('case not handled by transpiler. contact maintainers.')
120
- }
121
- const [nullableType, nullType] = info.anyOf;
122
- if (nullType?.type !== 'null') {
123
- throw new Error('[nullableType.type]: case not handled by transpiler. contact maintainers.')
124
- }
125
- if (!nullableType?.$ref) {
126
- if (nullableType.title) {
127
- type = t.tsTypeReference(t.identifier(nullableType.title));
128
- } else {
129
- throw new Error('[nullableType.title] case not handled by transpiler. contact maintainers.')
130
- }
131
- } else {
132
- type = getTypeFromRef(nullableType?.$ref);
133
- }
134
- optional = true;
135
- }
136
-
137
-
138
- if (typeof info.type === 'string') {
139
- if (info.type === 'array') {
140
- if (typeof info.items === 'object' && !Array.isArray(info.items)) {
141
- if (info.items.$ref) {
142
- type = getArrayTypeFromRef(info.items.$ref);
143
- } else if (info.items.title) {
144
- type = t.tsArrayType(
145
- t.tsTypeReference(
146
- t.identifier(info.items.title)
147
- )
148
- );
149
- } else if (info.items.type) {
150
- type = getArrayTypeFromItems(info.items);
151
- } else {
152
- throw new Error('[info.items] case not handled by transpiler. contact maintainers.')
153
- }
154
- } else {
155
- if (Array.isArray(info.items)) {
156
- type = getArrayTypeFromItems(info.items);
157
- // console.log(typeof info.items === 'object');
158
- // console.log(Array.isArray(info.items));
159
- // console.log(info);
160
- } else {
161
- throw new Error('[info.items] case not handled by transpiler. contact maintainers.')
162
- }
163
- }
164
- } else {
165
- const detect = detectType(info.type);
166
- type = getType(detect.type);
167
- optional = detect.optional;
168
- }
169
- }
170
-
171
- if (Array.isArray(info.type)) {
172
- // assuming 2nd is null, but let's check to ensure
173
- if (info.type.length !== 2) {
174
- throw new Error('please report this to maintainers (field type): ' + JSON.stringify(info, null, 2))
175
- }
176
- const [nullableType, nullType] = info.type;
177
- if (nullType !== 'null') {
178
- throw new Error('please report this to maintainers (field type): ' + JSON.stringify(info, null, 2))
179
- }
180
-
181
- if (nullableType === 'array' && typeof info.items === 'object' && !Array.isArray(info.items)) {
182
-
183
- if (info.items.type) {
184
- const detect = detectType(info.items.type);
185
- if (detect.type === 'array') {
186
- // wen recursion?
187
- type = t.tsArrayType(
188
- getArrayTypeFromItems(info.items)
189
- );
190
- } else {
191
- type = t.tsArrayType(
192
- getType(detect.type)
193
- );
194
- }
195
- optional = detect.optional;
196
- } else if (info.items.$ref) {
197
- type = getArrayTypeFromRef(info.items.$ref);
198
- // } else if (info.items.title) {
199
- // type = t.tsArrayType(
200
- // t.tsTypeReference(
201
- // t.identifier(info.items.title)
202
- // )
203
- // );
204
- } else if (info.items.type) {
205
- type = getArrayTypeFromItems(info.items);
206
- } else {
207
- throw new Error('[info.items] case not handled by transpiler. contact maintainers.')
208
- }
209
-
210
- } else {
211
- const detect = detectType(nullableType);
212
- optional = detect.optional;
213
- if (detect.type === 'array') {
214
- type = getArrayTypeFromItems(
215
- info.items
216
- );
217
- } else {
218
- type = getType(detect.type);
219
- }
220
-
221
- }
222
-
223
- optional = true;
224
- }
225
-
226
- return {
227
- type,
228
- optional
229
- };
230
-
231
- }
232
-
233
-
234
- export const getType = (type: string) => {
235
- switch (type) {
236
- case 'string':
237
- return t.tsStringKeyword();
238
- case 'boolean':
239
- return t.tSBooleanKeyword();
240
- case 'integer':
241
- return t.tsNumberKeyword();
242
- default:
243
- throw new Error('contact maintainers [unknown type]: ' + type);
244
- }
245
- }
246
-
247
- export const getPropertyType = (
248
- context: RenderContext,
249
- schema: JSONSchema,
250
- prop: string
251
- ) => {
252
- const props = schema.properties ?? {};
253
- let info = props[prop];
254
-
255
- let type = null;
256
- let optional = !schema.required?.includes(prop);
257
-
258
- if (info.allOf && info.allOf.length === 1) {
259
- info = info.allOf[0];
260
- }
261
-
262
- if (typeof info.$ref === 'string') {
263
- type = getTypeFromRef(info.$ref)
264
- }
265
-
266
- const typeInfo = getTypeInfo(info);
267
- if (typeof typeInfo.optional !== 'undefined') {
268
- optional = typeInfo.optional;
269
- }
270
- if (typeof typeInfo.type !== 'undefined') {
271
- type = typeInfo.type;
272
- }
273
-
274
- if (!type) {
275
- throw new Error('cannot find type for ' + JSON.stringify(info))
276
- }
277
-
278
- if (schema.required?.includes(prop)) {
279
- optional = false;
280
- }
281
-
282
- return { type, optional };
283
- };
284
-
285
-
286
- export function getPropertySignatureFromProp(
287
- context: RenderContext,
288
- jsonschema: JSONSchema,
289
- prop: string,
290
- camelize: boolean
291
- ) {
292
- if (jsonschema.properties[prop].type === 'object') {
293
- if (jsonschema.properties[prop].title) {
294
- return propertySignature(
295
- camelize ? camel(prop) : prop,
296
- t.tsTypeAnnotation(
297
- t.tsTypeReference(t.identifier(jsonschema.properties[prop].title))
298
- )
299
- );
300
- } else {
301
- throw new Error('getPropertySignatureFromProp() contact maintainer');
302
- }
303
- }
304
-
305
- if (Array.isArray(jsonschema.properties[prop].allOf)) {
306
- const isOptional = !jsonschema.required?.includes(prop);
307
- const unionTypes = jsonschema.properties[prop].allOf.map(el => {
308
- if (el.title) return el.title;
309
- if (el.$ref) return getTypeStrFromRef(el.$ref);
310
- return el.type;
311
- });
312
- // @ts-ignore:next-line
313
- const uniqUnionTypes = [...new Set(unionTypes)];
314
-
315
- if (uniqUnionTypes.length === 1) {
316
- return propertySignature(
317
- camelize ? camel(prop) : prop,
318
- t.tsTypeAnnotation(
319
- t.tsTypeReference(
320
- t.identifier(uniqUnionTypes[0])
321
- )
322
- ),
323
- isOptional
324
- );
325
- } else {
326
- return propertySignature(
327
- camelize ? camel(prop) : prop,
328
- t.tsTypeAnnotation(
329
- t.tsUnionType(
330
- uniqUnionTypes.map(typ =>
331
- t.tsTypeReference(
332
- t.identifier(typ)
333
- )
334
- )
335
- )
336
- ),
337
- isOptional
338
- );
339
- }
340
- } else if (Array.isArray(jsonschema.properties[prop].oneOf)) {
341
- const isOptional = !jsonschema.required?.includes(prop);
342
- const unionTypes = jsonschema.properties[prop].oneOf.map(el => {
343
- if (el.title) return el.title;
344
- if (el.$ref) return getTypeStrFromRef(el.$ref);
345
- return el.type;
346
- });
347
- // @ts-ignore:next-line
348
- const uniqUnionTypes = [...new Set(unionTypes)];
349
- if (uniqUnionTypes.length === 1) {
350
- return propertySignature(
351
- camelize ? camel(prop) : prop,
352
- t.tsTypeAnnotation(
353
- t.tsTypeReference(
354
- t.identifier(uniqUnionTypes[0])
355
- )
356
- ),
357
- isOptional
358
- );
359
- } else {
360
- return propertySignature(
361
- camelize ? camel(prop) : prop,
362
- t.tsTypeAnnotation(
363
- t.tsUnionType(
364
- uniqUnionTypes.map(typ =>
365
- t.tsTypeReference(
366
- t.identifier(typ)
367
- )
368
- )
369
- )
370
- ),
371
- isOptional
372
- );
373
- }
374
-
375
- }
376
-
377
- try {
378
- getPropertyType(context, jsonschema, prop);
379
- } catch (e) {
380
- console.log(e);
381
- console.log(JSON.stringify(jsonschema, null, 2), prop);
382
- }
383
-
384
- const { type, optional } = getPropertyType(context, jsonschema, prop);
385
- return propertySignature(
386
- camelize ? camel(prop) : prop,
387
- t.tsTypeAnnotation(
388
- type
389
- ),
390
- optional
391
- );
392
- }
393
-
394
- export const getParamsTypeAnnotation = (
395
- context: RenderContext,
396
- jsonschema: any,
397
- camelize: boolean = true
398
- ): t.TSTypeAnnotation => {
399
- const keys = Object.keys(jsonschema.properties ?? {});
400
-
401
- if (!keys.length && jsonschema.$ref) {
402
- return t.tsTypeAnnotation(getTypeFromRef(jsonschema.$ref))
403
- }
404
-
405
- if (!keys.length) return undefined;
406
-
407
- const typedParams = keys.map(prop => getPropertySignatureFromProp(
408
- context,
409
- jsonschema,
410
- prop,
411
- camelize
412
- ));
413
-
414
- return t.tsTypeAnnotation(
415
- t.tsTypeLiteral(
416
- // @ts-ignore:next-line
417
- [
418
- ...typedParams
419
- ]
420
- )
421
- )
422
- }
423
-
424
- export const createTypedObjectParams = (
425
- context: RenderContext,
426
- jsonschema: JSONSchema,
427
- camelize: boolean = true
428
- ): (t.Identifier | t.Pattern | t.RestElement) => {
429
-
430
- const keys = Object.keys(jsonschema.properties ?? {});
431
- if (!keys.length) {
432
- // is there a ref?
433
- if (jsonschema.$ref) {
434
- const obj = context.refLookup(jsonschema.$ref);
435
- // If there is a oneOf, then we need to create a type for it
436
- if (obj?.oneOf) {
437
- // the actual type of the ref
438
- const refType = jsonschema.$ref.split('/').pop();
439
- const refName = camel(refType);
440
- const id = t.identifier(refName);
441
- id.typeAnnotation = t.tsTypeAnnotation(t.tsTypeReference(t.identifier(refType)));
442
- return id
443
- } else if (obj) {
444
- return createTypedObjectParams(
445
- context,
446
- obj,
447
- camelize
448
- );
449
- }
450
- }
451
-
452
- // no results...
453
- return;
454
- }
455
-
456
- const params = keys.map(prop => {
457
- return t.objectProperty(
458
- camelize ? t.identifier(camel(prop)) : t.identifier(prop),
459
- camelize ? t.identifier(camel(prop)) : t.identifier(prop),
460
- false,
461
- true
462
- );
463
- });
464
-
465
- const obj = t.objectPattern(
466
- [
467
- ...params
468
- ]
469
- );
470
-
471
- obj.typeAnnotation = getParamsTypeAnnotation(
472
- context,
473
- jsonschema,
474
- camelize
475
- );
476
-
477
- return obj;
478
- };
package/types/types.d.ts DELETED
@@ -1,41 +0,0 @@
1
- export declare type fieldType = 'Long' | 'Coin' | 'Duration' | 'Height' | string;
2
- export interface Field {
3
- name: string;
4
- type: fieldType;
5
- node: any;
6
- }
7
- export interface Interface {
8
- name: string;
9
- fields: Field[];
10
- }
11
- export interface QueryMsg {
12
- $schema: string;
13
- title: "QueryMsg";
14
- oneOf?: any;
15
- allOf?: any;
16
- anyOf?: any;
17
- }
18
- export interface ExecuteMsg {
19
- $schema: string;
20
- title: "ExecuteMsg" | "ExecuteMsg_for_Empty";
21
- oneOf?: any;
22
- allOf?: any;
23
- anyOf?: any;
24
- }
25
- export interface JSONSchema {
26
- $ref?: string;
27
- $schema?: string;
28
- additionalProperties?: boolean;
29
- allOf?: JSONSchema[];
30
- anyOf?: JSONSchema[];
31
- definitions?: Record<string, JSONSchema>;
32
- description?: string;
33
- oneOf?: JSONSchema[];
34
- properties?: Record<string, JSONSchema>;
35
- patternProperties?: Record<string, JSONSchema>;
36
- items?: JSONSchema | JSONSchema[];
37
- additionalItems?: JSONSchema;
38
- required?: string[];
39
- title?: string;
40
- type?: string;
41
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes