@pezkuwi/types-create 16.5.19 → 16.5.21

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.
Files changed (168) hide show
  1. package/package.json +9 -9
  2. package/build/LICENSE +0 -201
  3. package/build/README.md +0 -3
  4. package/build/bundle.js +0 -3
  5. package/build/cjs/bundle.d.ts +0 -3
  6. package/build/cjs/bundle.js +0 -9
  7. package/build/cjs/create/class.js +0 -165
  8. package/build/cjs/create/index.js +0 -5
  9. package/build/cjs/create/type.js +0 -66
  10. package/build/cjs/exports.js +0 -5
  11. package/build/cjs/index.js +0 -5
  12. package/build/cjs/packageInfo.js +0 -4
  13. package/build/cjs/types/augmentRegistry.js +0 -3
  14. package/build/cjs/types/index.js +0 -6
  15. package/build/cjs/types/lookup.js +0 -2
  16. package/build/cjs/types/types.js +0 -29
  17. package/build/cjs/util/encodeTypes.js +0 -128
  18. package/build/cjs/util/getTypeDef.js +0 -195
  19. package/build/cjs/util/index.js +0 -7
  20. package/build/cjs/util/typeSplit.js +0 -60
  21. package/build/cjs/util/xcm.js +0 -9
  22. package/build/create/class.d.ts +0 -5
  23. package/build/create/class.js +0 -160
  24. package/build/create/index.d.ts +0 -2
  25. package/build/create/index.js +0 -2
  26. package/build/create/type.d.ts +0 -3
  27. package/build/create/type.js +0 -63
  28. package/build/exports.d.ts +0 -2
  29. package/build/exports.js +0 -2
  30. package/build/index.d.ts +0 -2
  31. package/build/index.js +0 -2
  32. package/build/package.json +0 -291
  33. package/build/packageDetect.d.ts +0 -1
  34. package/build/packageDetect.js +0 -4
  35. package/build/packageInfo.d.ts +0 -6
  36. package/build/packageInfo.js +0 -1
  37. package/build/types/augmentRegistry.d.ts +0 -11
  38. package/build/types/augmentRegistry.js +0 -1
  39. package/build/types/index.d.ts +0 -4
  40. package/build/types/index.js +0 -3
  41. package/build/types/lookup.d.ts +0 -14
  42. package/build/types/lookup.js +0 -1
  43. package/build/types/types.d.ts +0 -43
  44. package/build/types/types.js +0 -26
  45. package/build/util/encodeTypes.d.ts +0 -11
  46. package/build/util/encodeTypes.js +0 -123
  47. package/build/util/getTypeDef.d.ts +0 -8
  48. package/build/util/getTypeDef.js +0 -192
  49. package/build/util/index.d.ts +0 -4
  50. package/build/util/index.js +0 -4
  51. package/build/util/typeSplit.d.ts +0 -1
  52. package/build/util/typeSplit.js +0 -57
  53. package/build/util/xcm.d.ts +0 -2
  54. package/build/util/xcm.js +0 -5
  55. package/build-deno/README.md +0 -3
  56. package/build-deno/bundle.ts +0 -5
  57. package/build-deno/create/class.ts +0 -252
  58. package/build-deno/create/index.ts +0 -3
  59. package/build-deno/create/type.ts +0 -85
  60. package/build-deno/exports.ts +0 -3
  61. package/build-deno/index.ts +0 -4
  62. package/build-deno/mod.ts +0 -2
  63. package/build-deno/packageDetect.ts +0 -8
  64. package/build-deno/packageInfo.ts +0 -3
  65. package/build-deno/types/augmentRegistry.ts +0 -15
  66. package/build-deno/types/index.ts +0 -7
  67. package/build-deno/types/lookup.ts +0 -16
  68. package/build-deno/types/types.ts +0 -45
  69. package/build-deno/util/encodeTypes.ts +0 -201
  70. package/build-deno/util/getTypeDef.ts +0 -267
  71. package/build-deno/util/index.ts +0 -5
  72. package/build-deno/util/typeSplit.ts +0 -53
  73. package/build-deno/util/xcm.ts +0 -10
  74. package/build-tsc-cjs/packageDetect.js +0 -6
  75. package/src/bundle.ts +0 -9
  76. package/src/create/class.ts +0 -257
  77. package/src/create/index.ts +0 -5
  78. package/src/create/type.ts +0 -94
  79. package/src/exports.ts +0 -6
  80. package/src/index.ts +0 -6
  81. package/src/mod.ts +0 -4
  82. package/src/packageDetect.ts +0 -12
  83. package/src/packageInfo.ts +0 -6
  84. package/src/types/augmentRegistry.ts +0 -19
  85. package/src/types/index.ts +0 -11
  86. package/src/types/lookup.ts +0 -21
  87. package/src/types/types.ts +0 -47
  88. package/src/util/encodeTypes.spec.ts +0 -217
  89. package/src/util/encodeTypes.ts +0 -205
  90. package/src/util/getTypeDef.spec.ts +0 -704
  91. package/src/util/getTypeDef.ts +0 -279
  92. package/src/util/index.ts +0 -7
  93. package/src/util/typeSplit.spec.ts +0 -50
  94. package/src/util/typeSplit.ts +0 -56
  95. package/src/util/xcm.ts +0 -12
  96. package/tsconfig.build.json +0 -15
  97. package/tsconfig.build.tsbuildinfo +0 -1
  98. package/tsconfig.spec.json +0 -17
  99. package/tsconfig.spec.tsbuildinfo +0 -1
  100. /package/{build-tsc/bundle.d.ts → bundle.d.ts} +0 -0
  101. /package/{build-tsc-esm/bundle.js → bundle.js} +0 -0
  102. /package/{build → cjs}/bundle.d.ts +0 -0
  103. /package/{build-tsc-cjs → cjs}/bundle.js +0 -0
  104. /package/{build-tsc → cjs}/create/class.d.ts +0 -0
  105. /package/{build-tsc-cjs → cjs}/create/class.js +0 -0
  106. /package/{build-tsc → cjs}/create/index.d.ts +0 -0
  107. /package/{build-tsc-cjs → cjs}/create/index.js +0 -0
  108. /package/{build-tsc → cjs}/create/type.d.ts +0 -0
  109. /package/{build-tsc-cjs → cjs}/create/type.js +0 -0
  110. /package/{build-tsc → cjs}/exports.d.ts +0 -0
  111. /package/{build-tsc-cjs → cjs}/exports.js +0 -0
  112. /package/{build-tsc → cjs}/index.d.ts +0 -0
  113. /package/{build-tsc-cjs → cjs}/index.js +0 -0
  114. /package/{build/cjs → cjs}/package.json +0 -0
  115. /package/{build-tsc → cjs}/packageDetect.d.ts +0 -0
  116. /package/{build/cjs → cjs}/packageDetect.js +0 -0
  117. /package/{build-tsc → cjs}/packageInfo.d.ts +0 -0
  118. /package/{build-tsc-cjs → cjs}/packageInfo.js +0 -0
  119. /package/{build-tsc → cjs}/types/augmentRegistry.d.ts +0 -0
  120. /package/{build-tsc-cjs → cjs}/types/augmentRegistry.js +0 -0
  121. /package/{build-tsc → cjs}/types/index.d.ts +0 -0
  122. /package/{build-tsc-cjs → cjs}/types/index.js +0 -0
  123. /package/{build-tsc → cjs}/types/lookup.d.ts +0 -0
  124. /package/{build-tsc-cjs → cjs}/types/lookup.js +0 -0
  125. /package/{build-tsc → cjs}/types/types.d.ts +0 -0
  126. /package/{build-tsc-cjs → cjs}/types/types.js +0 -0
  127. /package/{build-tsc → cjs}/util/encodeTypes.d.ts +0 -0
  128. /package/{build-tsc-cjs → cjs}/util/encodeTypes.js +0 -0
  129. /package/{build-tsc → cjs}/util/getTypeDef.d.ts +0 -0
  130. /package/{build-tsc-cjs → cjs}/util/getTypeDef.js +0 -0
  131. /package/{build-tsc → cjs}/util/index.d.ts +0 -0
  132. /package/{build-tsc-cjs → cjs}/util/index.js +0 -0
  133. /package/{build-tsc → cjs}/util/typeSplit.d.ts +0 -0
  134. /package/{build-tsc-cjs → cjs}/util/typeSplit.js +0 -0
  135. /package/{build-tsc → cjs}/util/xcm.d.ts +0 -0
  136. /package/{build-tsc-cjs → cjs}/util/xcm.js +0 -0
  137. /package/{build/cjs/create → create}/class.d.ts +0 -0
  138. /package/{build-tsc-esm/create → create}/class.js +0 -0
  139. /package/{build/cjs/create → create}/index.d.ts +0 -0
  140. /package/{build-tsc-esm/create → create}/index.js +0 -0
  141. /package/{build/cjs/create → create}/type.d.ts +0 -0
  142. /package/{build-tsc-esm/create → create}/type.js +0 -0
  143. /package/{build/cjs/exports.d.ts → exports.d.ts} +0 -0
  144. /package/{build-tsc-esm/exports.js → exports.js} +0 -0
  145. /package/{build/cjs/index.d.ts → index.d.ts} +0 -0
  146. /package/{build-tsc-esm/index.js → index.js} +0 -0
  147. /package/{build/cjs/packageDetect.d.ts → packageDetect.d.ts} +0 -0
  148. /package/{build-tsc-esm/packageDetect.js → packageDetect.js} +0 -0
  149. /package/{build/cjs/packageInfo.d.ts → packageInfo.d.ts} +0 -0
  150. /package/{build-tsc-esm/packageInfo.js → packageInfo.js} +0 -0
  151. /package/{build/cjs/types → types}/augmentRegistry.d.ts +0 -0
  152. /package/{build-tsc-esm/types → types}/augmentRegistry.js +0 -0
  153. /package/{build/cjs/types → types}/index.d.ts +0 -0
  154. /package/{build-tsc-esm/types → types}/index.js +0 -0
  155. /package/{build/cjs/types → types}/lookup.d.ts +0 -0
  156. /package/{build-tsc-esm/types → types}/lookup.js +0 -0
  157. /package/{build/cjs/types → types}/types.d.ts +0 -0
  158. /package/{build-tsc-esm/types → types}/types.js +0 -0
  159. /package/{build/cjs/util → util}/encodeTypes.d.ts +0 -0
  160. /package/{build-tsc-esm/util → util}/encodeTypes.js +0 -0
  161. /package/{build/cjs/util → util}/getTypeDef.d.ts +0 -0
  162. /package/{build-tsc-esm/util → util}/getTypeDef.js +0 -0
  163. /package/{build/cjs/util → util}/index.d.ts +0 -0
  164. /package/{build-tsc-esm/util → util}/index.js +0 -0
  165. /package/{build/cjs/util → util}/typeSplit.d.ts +0 -0
  166. /package/{build-tsc-esm/util → util}/typeSplit.js +0 -0
  167. /package/{build/cjs/util → util}/xcm.d.ts +0 -0
  168. /package/{build-tsc-esm/util → util}/xcm.js +0 -0
@@ -1,704 +0,0 @@
1
- // Copyright 2017-2025 @pezkuwi/types authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- /// <reference types="@pezkuwi/dev-test/globals.d.ts" />
5
-
6
- import { TypeRegistry } from '@pezkuwi/types';
7
- import { getTypeDef, TypeDefInfo } from '@pezkuwi/types-create';
8
- import { stringify } from '@pezkuwi/util';
9
-
10
- describe('getTypeDef', (): void => {
11
- it('maps empty tuples to empty tuple', (): void => {
12
- expect(
13
- getTypeDef('()')
14
- ).toEqual({
15
- displayName: undefined,
16
- info: TypeDefInfo.Tuple,
17
- name: undefined,
18
- sub: [],
19
- type: '()'
20
- });
21
- });
22
-
23
- it('properly decodes a BTreeMap<u32, Text>', (): void => {
24
- expect(
25
- getTypeDef('BTreeMap<u32, Text>')
26
- ).toEqual({
27
- displayName: undefined,
28
- info: TypeDefInfo.BTreeMap,
29
- name: undefined,
30
- sub: [
31
- {
32
- displayName: undefined,
33
- info: TypeDefInfo.Plain,
34
- name: undefined,
35
- type: 'u32'
36
- },
37
- {
38
- displayName: undefined,
39
- info: TypeDefInfo.Plain,
40
- name: undefined,
41
- type: 'Text'
42
- }
43
- ],
44
- type: 'BTreeMap<u32,Text>'
45
- });
46
- });
47
-
48
- it('properly decodes a BTreeSet<Text>', (): void => {
49
- expect(
50
- getTypeDef('BTreeSet<Text>')
51
- ).toEqual({
52
- displayName: undefined,
53
- info: TypeDefInfo.BTreeSet,
54
- name: undefined,
55
- sub: {
56
- displayName: undefined,
57
- info: TypeDefInfo.Plain,
58
- name: undefined,
59
- type: 'Text'
60
- },
61
- type: 'BTreeSet<Text>'
62
- });
63
- });
64
-
65
- it('properly decodes a Result<u32, Text>', (): void => {
66
- expect(
67
- getTypeDef('Result<u32, Text>')
68
- ).toEqual({
69
- displayName: undefined,
70
- info: TypeDefInfo.Result,
71
- name: undefined,
72
- sub: [
73
- {
74
- displayName: undefined,
75
- info: TypeDefInfo.Plain,
76
- name: undefined,
77
- type: 'u32'
78
- },
79
- {
80
- displayName: undefined,
81
- info: TypeDefInfo.Plain,
82
- name: undefined,
83
- type: 'Text'
84
- }
85
- ],
86
- type: 'Result<u32,Text>'
87
- });
88
- });
89
-
90
- it('properly decodes a Result<Result<(), u32>, Text>', (): void => {
91
- expect(
92
- getTypeDef('Result<Result<Null,u32>,Text>')
93
- ).toEqual({
94
- displayName: undefined,
95
- info: TypeDefInfo.Result,
96
- name: undefined,
97
- sub: [
98
- {
99
- displayName: undefined,
100
- info: TypeDefInfo.Result,
101
- name: undefined,
102
- sub: [
103
- {
104
- displayName: undefined,
105
- info: TypeDefInfo.Plain,
106
- name: undefined,
107
- type: 'Null'
108
- },
109
- {
110
- displayName: undefined,
111
- info: TypeDefInfo.Plain,
112
- name: undefined,
113
- type: 'u32'
114
- }
115
- ],
116
- type: 'Result<Null,u32>'
117
- },
118
- {
119
- displayName: undefined,
120
- info: TypeDefInfo.Plain,
121
- name: undefined,
122
- type: 'Text'
123
- }
124
- ],
125
- type: 'Result<Result<Null,u32>,Text>'
126
- });
127
- });
128
-
129
- it('returns a type structure', (): void => {
130
- expect(
131
- getTypeDef('(u32, Compact<u32>, Vec<u64>, Option<u128>, (Text,Vec<(Bool,u128)>))')
132
- ).toEqual({
133
- displayName: undefined,
134
- info: TypeDefInfo.Tuple,
135
- name: undefined,
136
- sub: [
137
- {
138
- displayName: undefined,
139
- info: TypeDefInfo.Plain,
140
- name: undefined,
141
- type: 'u32'
142
- },
143
- {
144
- displayName: undefined,
145
- info: TypeDefInfo.Compact,
146
- name: undefined,
147
- sub: {
148
- displayName: undefined,
149
- info: TypeDefInfo.Plain,
150
- name: undefined,
151
- type: 'u32'
152
- },
153
- type: 'Compact<u32>'
154
- },
155
- {
156
- displayName: undefined,
157
- info: TypeDefInfo.Vec,
158
- name: undefined,
159
- sub: {
160
- displayName: undefined,
161
- info: TypeDefInfo.Plain,
162
- name: undefined,
163
- type: 'u64'
164
- },
165
- type: 'Vec<u64>'
166
- },
167
- {
168
- displayName: undefined,
169
- info: TypeDefInfo.Option,
170
- name: undefined,
171
- sub: {
172
- displayName: undefined,
173
- info: TypeDefInfo.Plain,
174
- name: undefined,
175
- type: 'u128'
176
- },
177
- type: 'Option<u128>'
178
- },
179
- {
180
- displayName: undefined,
181
- info: TypeDefInfo.Tuple,
182
- name: undefined,
183
- sub: [
184
- {
185
- displayName: undefined,
186
- info: TypeDefInfo.Plain,
187
- name: undefined,
188
- type: 'Text'
189
- },
190
- {
191
- displayName: undefined,
192
- info: TypeDefInfo.Vec,
193
- name: undefined,
194
- sub: {
195
- displayName: undefined,
196
- info: TypeDefInfo.Tuple,
197
- name: undefined,
198
- sub: [
199
- {
200
- displayName: undefined,
201
- info: TypeDefInfo.Plain,
202
- name: undefined,
203
- type: 'Bool'
204
- },
205
- {
206
- displayName: undefined,
207
- info: TypeDefInfo.Plain,
208
- name: undefined,
209
- type: 'u128'
210
- }
211
- ],
212
- type: '(Bool,u128)'
213
- },
214
- type: 'Vec<(Bool,u128)>'
215
- }
216
- ],
217
- type: '(Text,Vec<(Bool,u128)>)'
218
- }
219
- ],
220
- type: '(u32,Compact<u32>,Vec<u64>,Option<u128>,(Text,Vec<(Bool,u128)>))'
221
- });
222
- });
223
-
224
- it('returns a type structure (sanitized)', (): void => {
225
- expect(
226
- getTypeDef('Vec<(Box<PropIndex>, Proposal,Lookup::Target)>')
227
- ).toEqual({
228
- displayName: undefined,
229
- info: TypeDefInfo.Vec,
230
- name: undefined,
231
- sub: {
232
- displayName: undefined,
233
- info: TypeDefInfo.Tuple,
234
- name: undefined,
235
- sub: [
236
- {
237
- displayName: undefined,
238
- info: TypeDefInfo.Plain,
239
- name: undefined,
240
- type: 'PropIndex'
241
- },
242
- {
243
- displayName: undefined,
244
- info: TypeDefInfo.Plain,
245
- name: undefined,
246
- type: 'Proposal'
247
- },
248
- {
249
- displayName: undefined,
250
- info: TypeDefInfo.Plain,
251
- name: undefined,
252
- type: 'LookupTarget'
253
- }
254
- ],
255
- type: '(PropIndex,Proposal,LookupTarget)'
256
- },
257
- type: 'Vec<(PropIndex,Proposal,LookupTarget)>'
258
- });
259
- });
260
-
261
- it('returns a type structure (actual)', (): void => {
262
- expect(
263
- getTypeDef('Vec<(PropIndex, Proposal, AccountId)>')
264
- ).toEqual({
265
- displayName: undefined,
266
- info: TypeDefInfo.Vec,
267
- name: undefined,
268
- sub: {
269
- displayName: undefined,
270
- info: TypeDefInfo.Tuple,
271
- name: undefined,
272
- sub: [
273
- {
274
- displayName: undefined,
275
- info: TypeDefInfo.Plain,
276
- name: undefined,
277
- type: 'PropIndex'
278
- },
279
- {
280
- displayName: undefined,
281
- info: TypeDefInfo.Plain,
282
- name: undefined,
283
- type: 'Proposal'
284
- },
285
- {
286
- displayName: undefined,
287
- info: TypeDefInfo.Plain,
288
- name: undefined,
289
- type: 'AccountId'
290
- }
291
- ],
292
- type: '(PropIndex,Proposal,AccountId)'
293
- },
294
- type: 'Vec<(PropIndex,Proposal,AccountId)>'
295
- });
296
- });
297
-
298
- it('returns an actual Struct', (): void => {
299
- expect(
300
- getTypeDef('{"balance":"Balance","account_id":"AccountId","log":"(u64, Signature)"}')
301
- ).toEqual({
302
- alias: undefined,
303
- displayName: undefined,
304
- fallbackType: undefined,
305
- info: TypeDefInfo.Struct,
306
- name: undefined,
307
- sub: [
308
- {
309
- displayName: undefined,
310
- info: TypeDefInfo.Plain,
311
- name: 'balance',
312
- type: 'Balance'
313
- },
314
- {
315
- displayName: undefined,
316
- info: TypeDefInfo.Plain,
317
- name: 'account_id',
318
- type: 'AccountId'
319
- },
320
- {
321
- displayName: undefined,
322
- info: TypeDefInfo.Tuple,
323
- name: 'log',
324
- sub: [
325
- {
326
- displayName: undefined,
327
- info: TypeDefInfo.Plain,
328
- name: undefined,
329
- type: 'u64'
330
- },
331
- {
332
- displayName: undefined,
333
- info: TypeDefInfo.Plain,
334
- name: undefined,
335
- type: 'Signature'
336
- }
337
- ],
338
- type: '(u64,Signature)'
339
- }
340
- ],
341
- type: '{"balance":"Balance","account_id":"AccountId","log":"(u64,Signature)"}'
342
- });
343
- });
344
-
345
- it('creates a nested fixed vec', (): void => {
346
- expect(
347
- getTypeDef('[[[bool; 3]; 6]; 9]')
348
- ).toEqual({
349
- displayName: undefined,
350
- info: TypeDefInfo.VecFixed,
351
- length: 9,
352
- name: undefined,
353
- sub: {
354
- displayName: undefined,
355
- info: TypeDefInfo.VecFixed,
356
- length: 6,
357
- name: undefined,
358
- sub: {
359
- displayName: undefined,
360
- info: TypeDefInfo.VecFixed,
361
- length: 3,
362
- name: undefined,
363
- sub: {
364
- displayName: undefined,
365
- info: TypeDefInfo.Plain,
366
- name: undefined,
367
- type: 'bool'
368
- },
369
- type: '[bool;3]'
370
- },
371
- type: '[[bool;3];6]'
372
- },
373
- type: '[[[bool;3];6];9]'
374
- });
375
- });
376
-
377
- it('creates a nested fixed vec (named)', (): void => {
378
- expect(
379
- getTypeDef('[[bool; 6]; 3; MyType]')
380
- ).toEqual({
381
- displayName: 'MyType',
382
- info: TypeDefInfo.VecFixed,
383
- length: 3,
384
- name: undefined,
385
- sub: {
386
- displayName: undefined,
387
- info: TypeDefInfo.VecFixed,
388
- length: 6,
389
- name: undefined,
390
- sub: {
391
- displayName: undefined,
392
- info: TypeDefInfo.Plain,
393
- name: undefined,
394
- type: 'bool'
395
- },
396
- type: '[bool;6]'
397
- },
398
- type: '[[bool;6];3;MyType]'
399
- });
400
- });
401
-
402
- it('creates a nested tuple', (): void => {
403
- expect(
404
- getTypeDef('((u32, u64), u128)')
405
- ).toEqual({
406
- displayName: undefined,
407
- info: TypeDefInfo.Tuple,
408
- name: undefined,
409
- sub: [
410
- {
411
- displayName: undefined,
412
- info: TypeDefInfo.Tuple,
413
- name: undefined,
414
- sub: [
415
- {
416
- displayName: undefined,
417
- info: TypeDefInfo.Plain,
418
- name: undefined,
419
- type: 'u32'
420
- },
421
- {
422
- displayName: undefined,
423
- info: TypeDefInfo.Plain,
424
- name: undefined,
425
- type: 'u64'
426
- }
427
- ],
428
- type: '(u32,u64)'
429
- },
430
- {
431
- displayName: undefined,
432
- info: TypeDefInfo.Plain,
433
- name: undefined,
434
- type: 'u128'
435
- }
436
- ],
437
- type: '((u32,u64),u128)'
438
- });
439
- });
440
-
441
- it('creates a nested enum with tuple/struct', (): void => {
442
- expect(
443
- getTypeDef(stringify({
444
- _enum: {
445
- A: 'u32',
446
- B: '(u32, bool)',
447
- C: {
448
- d: 'AccountId',
449
- e: 'Balance'
450
- }
451
- }
452
- }))
453
- ).toEqual({
454
- displayName: undefined,
455
- fallbackType: undefined,
456
- info: TypeDefInfo.Enum,
457
- name: undefined,
458
- sub: [
459
- {
460
- displayName: undefined,
461
- index: 0,
462
- info: TypeDefInfo.Plain,
463
- name: 'A',
464
- type: 'u32'
465
- },
466
- {
467
- displayName: undefined,
468
- index: 1,
469
- info: TypeDefInfo.Tuple,
470
- name: 'B',
471
- sub: [
472
- {
473
- displayName: undefined,
474
- info: TypeDefInfo.Plain,
475
- name: undefined,
476
- type: 'u32'
477
- },
478
- {
479
- displayName: undefined,
480
- info: TypeDefInfo.Plain,
481
- name: undefined,
482
- type: 'bool'
483
- }
484
- ],
485
- type: '(u32,bool)'
486
- },
487
- {
488
- alias: undefined,
489
- displayName: undefined,
490
- fallbackType: undefined,
491
- index: 2,
492
- info: TypeDefInfo.Struct,
493
- name: 'C',
494
- sub: [
495
- {
496
- displayName: undefined,
497
- info: TypeDefInfo.Plain,
498
- name: 'd',
499
- type: 'AccountId'
500
- },
501
- {
502
- displayName: undefined,
503
- info: TypeDefInfo.Plain,
504
- name: 'e',
505
- type: 'Balance'
506
- }
507
- ],
508
- type: '{"d":"AccountId","e":"Balance"}'
509
- }
510
- ],
511
- type: '{"_enum":{"A":"u32","B":"(u32,bool)","C":{"d":"AccountId","e":"Balance"}}}'
512
- });
513
- });
514
-
515
- it('creates a nested struct with struct/tuple', (): void => {
516
- expect(
517
- getTypeDef(stringify({
518
- a: 'u32',
519
- b: '(u32, bool)',
520
- c: {
521
- d: 'AccountId',
522
- e: 'Balance'
523
- }
524
- }))
525
- ).toEqual({
526
- alias: undefined,
527
- displayName: undefined,
528
- fallbackType: undefined,
529
- info: TypeDefInfo.Struct,
530
- name: undefined,
531
- sub: [
532
- {
533
- displayName: undefined,
534
- info: TypeDefInfo.Plain,
535
- name: 'a',
536
- type: 'u32'
537
- },
538
- {
539
- displayName: undefined,
540
- info: TypeDefInfo.Tuple,
541
- name: 'b',
542
- sub: [
543
- {
544
- displayName: undefined,
545
- info: TypeDefInfo.Plain,
546
- name: undefined,
547
- type: 'u32'
548
- },
549
- {
550
- displayName: undefined,
551
- info: TypeDefInfo.Plain,
552
- name: undefined,
553
- type: 'bool'
554
- }
555
- ],
556
- type: '(u32,bool)'
557
- },
558
- {
559
- alias: undefined,
560
- displayName: undefined,
561
- fallbackType: undefined,
562
- info: TypeDefInfo.Struct,
563
- name: 'c',
564
- sub: [
565
- {
566
- displayName: undefined,
567
- info: TypeDefInfo.Plain,
568
- name: 'd',
569
- type: 'AccountId'
570
- },
571
- {
572
- displayName: undefined,
573
- info: TypeDefInfo.Plain,
574
- name: 'e',
575
- type: 'Balance'
576
- }
577
- ],
578
- type: '{"d":"AccountId","e":"Balance"}'
579
- }
580
- ],
581
- type: '{"a":"u32","b":"(u32,bool)","c":{"d":"AccountId","e":"Balance"}}'
582
- });
583
- });
584
-
585
- it('creates a Vec with nested fixed', (): void => {
586
- expect(
587
- getTypeDef('Vec<[[[bool; 3]; 6]; 9]>')
588
- ).toEqual({
589
- displayName: undefined,
590
- info: TypeDefInfo.Vec,
591
- name: undefined,
592
- sub: {
593
- displayName: undefined,
594
- info: TypeDefInfo.VecFixed,
595
- length: 9,
596
- name: undefined,
597
- sub: {
598
- displayName: undefined,
599
- info: TypeDefInfo.VecFixed,
600
- length: 6,
601
- name: undefined,
602
- sub: {
603
- displayName: undefined,
604
- info: TypeDefInfo.VecFixed,
605
- length: 3,
606
- name: undefined,
607
- sub: {
608
- displayName: undefined,
609
- info: TypeDefInfo.Plain,
610
- name: undefined,
611
- type: 'bool'
612
- },
613
- type: '[bool;3]'
614
- },
615
- type: '[[bool;3];6]'
616
- },
617
- type: '[[[bool;3];6];9]'
618
- },
619
- type: 'Vec<[[[bool;3];6];9]>'
620
- });
621
- });
622
-
623
- it('creates a Vec with nested struct', (): void => {
624
- expect(
625
- getTypeDef('Vec<{ "a": "u32", "b": "(u32, bool)" }>')
626
- ).toEqual({
627
- displayName: undefined,
628
- info: TypeDefInfo.Vec,
629
- name: undefined,
630
- sub: {
631
- alias: undefined,
632
- displayName: undefined,
633
- fallbackType: undefined,
634
- info: TypeDefInfo.Struct,
635
- name: undefined,
636
- sub: [
637
- {
638
- displayName: undefined,
639
- info: TypeDefInfo.Plain,
640
- name: 'a',
641
- type: 'u32'
642
- },
643
- {
644
- displayName: undefined,
645
- info: TypeDefInfo.Tuple,
646
- name: 'b',
647
- sub: [
648
- {
649
- displayName: undefined,
650
- info: TypeDefInfo.Plain,
651
- name: undefined,
652
- type: 'u32'
653
- },
654
- {
655
- displayName: undefined,
656
- info: TypeDefInfo.Plain,
657
- name: undefined,
658
- type: 'bool'
659
- }
660
- ],
661
- type: '(u32,bool)'
662
- }
663
- ],
664
- type: '{"a":"u32","b":"(u32,bool)"}'
665
- },
666
- type: 'Vec<{"a":"u32","b":"(u32,bool)"}>'
667
- });
668
- });
669
-
670
- it('creates recursive structures', (): void => {
671
- const registry = new TypeRegistry();
672
-
673
- registry.register({
674
- Recursive: {
675
- data: 'Vec<Recursive>'
676
- }
677
- });
678
-
679
- const raw = registry.createType('Recursive').toRawType();
680
-
681
- expect(
682
- getTypeDef(raw)
683
- ).toEqual({
684
- alias: undefined,
685
- displayName: undefined,
686
- fallbackType: undefined,
687
- info: TypeDefInfo.Struct,
688
- name: undefined,
689
- sub: [{
690
- displayName: undefined,
691
- info: TypeDefInfo.Vec,
692
- name: 'data',
693
- sub: {
694
- displayName: undefined,
695
- info: TypeDefInfo.Plain,
696
- name: undefined,
697
- type: 'Recursive'
698
- },
699
- type: 'Vec<Recursive>'
700
- }],
701
- type: '{"data":"Vec<Recursive>"}'
702
- });
703
- });
704
- });