json-as 1.1.15-preview.4 → 1.1.15-preview.5

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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- ## UNRELEASED
3
+ ## 2025-06-09 - 1.1.15
4
4
 
5
5
  - feat: add `.as<T>()` method to `JSON.Value`
6
6
  - chore: remove all references to `__SERIALIZE_CUSTOM`
@@ -8,6 +8,7 @@
8
8
  - feat: support `JSON.Raw` in array types
9
9
  - tests: add tests for `JSON.Raw[]`
10
10
  - tests: properly support nulls (in testing lib)
11
+ - fix: initialize generic properties correctly
11
12
 
12
13
  ## 2025-05-29 - 1.1.14
13
14
 
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
7
7
  █████ ███████ ██████ ██ ████ ██ ██ ███████
8
8
  </span>
9
- AssemblyScript - v1.1.15-preview.4
9
+ AssemblyScript - v1.1.15-preview.5
10
10
  </pre>
11
11
  </h6>
12
12
 
@@ -1,654 +1,70 @@
1
- import { bs } from "../lib/as-bs";
2
- import { JSON } from ".";
3
-
1
+ import {
2
+ bs
3
+ } from "../lib/as-bs";
4
+ import {
5
+ JSON
6
+ } from ".";
4
7
  @json
5
- class Person {
6
- id: string | null = null;
7
- firstName: string = "";
8
- lastName: string = "";
9
- __SERIALIZE(ptr: usize): void {
10
- bs.proposeSize(64);
11
- store<u64>(bs.offset, 28147948644860027, 0);
12
- store<u32>(bs.offset, 3801122, 8);
13
- bs.offset += 12;
14
- JSON.__serialize<string | null>(load<string | null>(ptr, offsetof<this>("id")));
15
- store<u64>(bs.offset, 29555310643511340, 0);
16
- store<u64>(bs.offset, 21955546407174258, 8);
17
- store<u64>(bs.offset, 9570583007002721, 16);
18
- store<u16>(bs.offset, 58, 24);
19
- bs.offset += 26;
20
- JSON.__serialize<string>(load<string>(ptr, offsetof<this>("firstName")));
21
- store<u64>(bs.offset, 27303536599629868, 0);
22
- store<u64>(bs.offset, 27303407755985011, 8);
23
- store<u64>(bs.offset, 16325694684725357, 16);
24
- bs.offset += 24;
25
- JSON.__serialize<string>(load<string>(ptr, offsetof<this>("lastName")));
26
- store<u16>(bs.offset, 125, 0);
27
- bs.offset += 2;
8
+ class ByteArray extends Uint8Array {
9
+ constructor(length: i32) {
10
+ (length);
28
11
  }
29
-
12
+ @serializer
30
13
  @inline
31
- __INITIALIZE(): this {
32
- this.firstName = "";
33
- this.lastName = "";
34
- return this;
14
+ serialize(): string {
15
+ return `"${toHexString(this.buffer)}"`;
35
16
  }
36
- __DESERIALIZE<__JSON_T>(srcStart: usize, srcEnd: usize, out: __JSON_T): __JSON_T {
37
- let keyStart: usize = 0;
38
- let keyEnd: usize = 0;
39
- let isKey = false;
40
- let depth: i32 = 0;
41
- let lastIndex: usize = 0;
42
- while (srcStart < srcEnd && JSON.Util.isSpace(load<u16>(srcStart))) srcStart += 2;
43
- while (srcEnd > srcStart && JSON.Util.isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
44
- if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
45
- if (load<u16>(srcStart) != 123) throw new Error("Expected '{' at start of object at position " + (srcEnd - srcStart).toString());
46
- if (load<u16>(srcEnd - 2) != 125) throw new Error("Expected '}' at end of object at position " + (srcEnd - srcStart).toString());
47
- srcStart += 2;
48
- while (srcStart < srcEnd) {
49
- let code = load<u16>(srcStart);
50
- while (JSON.Util.isSpace(code)) code = load<u16>((srcStart += 2));
51
- if (keyStart == 0) {
52
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
53
- if (isKey) {
54
- keyStart = lastIndex;
55
- keyEnd = srcStart;
56
- while (JSON.Util.isSpace((code = load<u16>((srcStart += 2))))) {}
57
- if (code !== 58) throw new Error("Expected ':' after key at position " + (srcEnd - srcStart).toString());
58
- isKey = false;
59
- } else {
60
- isKey = true;
61
- lastIndex = srcStart + 2;
62
- }
63
- }
64
- srcStart += 2;
65
- } else {
66
- if (code == 34) {
67
- lastIndex = srcStart;
68
- srcStart += 2;
69
- while (srcStart < srcEnd) {
70
- const code = load<u16>(srcStart);
71
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
72
- switch (<u32>keyEnd - <u32>keyStart) {
73
- case 4: {
74
- const code32 = load<u32>(keyStart);
75
- if (code32 == 6553705) {
76
- store<string | null>(changetype<usize>(out), JSON.__deserialize<string | null>(lastIndex, srcStart + 2), offsetof<this>("id"));
77
- srcStart += 4;
78
- keyStart = 0;
79
- break;
80
- } else {
81
- srcStart += 4;
82
- keyStart = 0;
83
- break;
84
- }
85
- }
86
-
87
- case 18: {
88
- const codeS8 = load<u64>(keyStart, 0);
89
- const codeS16 = load<u64>(keyStart, 8);
90
- if (codeS8 == 32370111954878566 && codeS16 == 30681189078401140) {
91
- store<string>(changetype<usize>(out), JSON.__deserialize<string>(lastIndex, srcStart + 2), offsetof<this>("firstName"));
92
- srcStart += 4;
93
- keyStart = 0;
94
- break;
95
- } else {
96
- srcStart += 4;
97
- keyStart = 0;
98
- break;
99
- }
100
- }
101
-
102
- case 16: {
103
- const codeS8 = load<u64>(keyStart, 0);
104
- const codeS16 = load<u64>(keyStart, 8);
105
- if (codeS8 == 32651591226032236 && codeS16 == 28429440805568590) {
106
- store<string>(changetype<usize>(out), JSON.__deserialize<string>(lastIndex, srcStart + 2), offsetof<this>("lastName"));
107
- srcStart += 4;
108
- keyStart = 0;
109
- break;
110
- } else {
111
- srcStart += 4;
112
- keyStart = 0;
113
- break;
114
- }
115
- }
116
-
117
- default: {
118
- srcStart += 4;
119
- keyStart = 0;
120
- break;
121
- }
122
- }
123
- break;
124
- }
125
- srcStart += 2;
126
- }
127
- } else if (code - 48 <= 9 || code == 45) {
128
- lastIndex = srcStart;
129
- srcStart += 2;
130
- while (srcStart < srcEnd) {
131
- const code = load<u16>(srcStart);
132
- if (code == 44 || code == 125 || JSON.Util.isSpace(code)) {
133
- srcStart += 2;
134
- keyStart = 0;
135
- break;
136
- }
137
- srcStart += 2;
138
- }
139
- } else if (code == 123) {
140
- lastIndex = srcStart;
141
- depth++;
142
- srcStart += 2;
143
- while (srcStart < srcEnd) {
144
- const code = load<u16>(srcStart);
145
- if (code == 34) {
146
- srcStart += 2;
147
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
148
- } else if (code == 125) {
149
- if (--depth == 0) {
150
- srcStart += 2;
151
- keyStart = 0;
152
- break;
153
- }
154
- } else if (code == 123) depth++;
155
- srcStart += 2;
156
- }
157
- } else if (code == 91) {
158
- lastIndex = srcStart;
159
- depth++;
160
- srcStart += 2;
161
- while (srcStart < srcEnd) {
162
- const code = load<u16>(srcStart);
163
- if (code == 34) {
164
- srcStart += 2;
165
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
166
- } else if (code == 93) {
167
- if (--depth == 0) {
168
- srcStart += 2;
169
- keyStart = 0;
170
- break;
171
- }
172
- } else if (code == 91) depth++;
173
- srcStart += 2;
174
- }
175
- } else if (code == 116) {
176
- if (load<u64>(srcStart) == 28429475166421108) {
177
- srcStart += 8;
178
- srcStart += 2;
179
- keyStart = 0;
180
- } else {
181
- throw new Error("Expected to find 'true' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
182
- }
183
- } else if (code == 102) {
184
- if (load<u64>(srcStart, 2) == 28429466576093281) {
185
- srcStart += 10;
186
- srcStart += 2;
187
- keyStart = 0;
188
- } else {
189
- throw new Error("Expected to find 'false' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
190
- }
191
- } else if (code == 110) {
192
- if (load<u64>(srcStart) == 30399761348886638) {
193
- srcStart += 8;
194
- switch (<u32>keyEnd - <u32>keyStart) {
195
- case 4: {
196
- const code32 = load<u32>(keyStart);
197
- if (code32 == 6553705) {
198
- store<usize>(changetype<usize>(out), 0, offsetof<this>("id"));
199
- srcStart += 2;
200
- keyStart = 0;
201
- break;
202
- } else {
203
- srcStart += 2;
204
- keyStart = 0;
205
- break;
206
- }
207
- }
208
-
209
- default: {
210
- srcStart += 2;
211
- keyStart = 0;
212
- }
213
- }
214
- }
215
- } else {
216
- srcStart += 2;
217
- keyStart = 0;
218
- }
219
- }
220
- }
17
+ @deserializer
18
+ @inline
19
+ deserialize(data: string): ByteArray {
20
+ if (data.charCodeAt(0) != 34 || data.charCodeAt(data.length - 1) != 34) throw new Error("Expected Address to be of type string but found otherwise!");
21
+ ;
22
+ const out = new ByteArray((data.length / 2) - i32(data.startsWith("0x")));
23
+ store<ArrayBuffer>(changetype<usize>(out), fromHexString(data), offsetof<ByteArray>("buffer"));
221
24
  return out;
222
25
  }
223
- }
224
-
225
- @json
226
- class PeopleData {
227
- people: Array<Person> = [];
26
+ static wrap(buffer: ArrayBuffer, byteOffset: i32 = 0, length: i32 = -1): ByteArray {
27
+ return changetype<ByteArray>(Uint8Array.wrap(buffer, byteOffset, length));
28
+ }
228
29
  __SERIALIZE(ptr: usize): void {
229
- bs.proposeSize(22);
230
- store<u64>(bs.offset, 28429453686341755, 0);
231
- store<u64>(bs.offset, 28429436511584367, 8);
232
- store<u32>(bs.offset, 3801122, 16);
233
- bs.offset += 20;
234
- JSON.__serialize<Array<Person>>(load<Array<Person>>(ptr, offsetof<this>("people")));
235
- store<u16>(bs.offset, 125, 0);
236
- bs.offset += 2;
30
+ const data = this.serialize();
31
+ const dataSize = data.length << 1;
32
+ memory.copy(bs.offset, changetype<usize>(data), dataSize);
33
+ bs.offset += dataSize;
237
34
  }
238
-
239
35
  @inline
240
36
  __INITIALIZE(): this {
241
- this.people = [];
242
37
  return this;
243
38
  }
244
39
  __DESERIALIZE<__JSON_T>(srcStart: usize, srcEnd: usize, out: __JSON_T): __JSON_T {
245
- let keyStart: usize = 0;
246
- let keyEnd: usize = 0;
247
- let isKey = false;
248
- let depth: i32 = 0;
249
- let lastIndex: usize = 0;
250
- while (srcStart < srcEnd && JSON.Util.isSpace(load<u16>(srcStart))) srcStart += 2;
251
- while (srcEnd > srcStart && JSON.Util.isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
252
- if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
253
- if (load<u16>(srcStart) != 123) throw new Error("Expected '{' at start of object at position " + (srcEnd - srcStart).toString());
254
- if (load<u16>(srcEnd - 2) != 125) throw new Error("Expected '}' at end of object at position " + (srcEnd - srcStart).toString());
255
- srcStart += 2;
256
- while (srcStart < srcEnd) {
257
- let code = load<u16>(srcStart);
258
- while (JSON.Util.isSpace(code)) code = load<u16>((srcStart += 2));
259
- if (keyStart == 0) {
260
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
261
- if (isKey) {
262
- keyStart = lastIndex;
263
- keyEnd = srcStart;
264
- while (JSON.Util.isSpace((code = load<u16>((srcStart += 2))))) {}
265
- if (code !== 58) throw new Error("Expected ':' after key at position " + (srcEnd - srcStart).toString());
266
- isKey = false;
267
- } else {
268
- isKey = true;
269
- lastIndex = srcStart + 2;
270
- }
271
- }
272
- srcStart += 2;
273
- } else {
274
- if (code == 34) {
275
- lastIndex = srcStart;
276
- srcStart += 2;
277
- while (srcStart < srcEnd) {
278
- const code = load<u16>(srcStart);
279
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
280
- srcStart += 4;
281
- keyStart = 0;
282
- break;
283
- }
284
- srcStart += 2;
285
- }
286
- } else if (code - 48 <= 9 || code == 45) {
287
- lastIndex = srcStart;
288
- srcStart += 2;
289
- while (srcStart < srcEnd) {
290
- const code = load<u16>(srcStart);
291
- if (code == 44 || code == 125 || JSON.Util.isSpace(code)) {
292
- srcStart += 2;
293
- keyStart = 0;
294
- break;
295
- }
296
- srcStart += 2;
297
- }
298
- } else if (code == 123) {
299
- lastIndex = srcStart;
300
- depth++;
301
- srcStart += 2;
302
- while (srcStart < srcEnd) {
303
- const code = load<u16>(srcStart);
304
- if (code == 34) {
305
- srcStart += 2;
306
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
307
- } else if (code == 125) {
308
- if (--depth == 0) {
309
- srcStart += 2;
310
- keyStart = 0;
311
- break;
312
- }
313
- } else if (code == 123) depth++;
314
- srcStart += 2;
315
- }
316
- } else if (code == 91) {
317
- lastIndex = srcStart;
318
- depth++;
319
- srcStart += 2;
320
- while (srcStart < srcEnd) {
321
- const code = load<u16>(srcStart);
322
- if (code == 34) {
323
- srcStart += 2;
324
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
325
- } else if (code == 93) {
326
- if (--depth == 0) {
327
- srcStart += 2;
328
- switch (<u32>keyEnd - <u32>keyStart) {
329
- case 12: {
330
- const codeS8 = load<u64>(keyStart, 0);
331
- const codeS12 = load<u32>(keyStart, 8);
332
- if (codeS8 == 31525674139582576 && codeS12 == 6619244) {
333
- store<Array<Person>>(changetype<usize>(out), JSON.__deserialize<Array<Person>>(lastIndex, srcStart), offsetof<this>("people"));
334
- keyStart = 0;
335
- break;
336
- } else {
337
- keyStart = 0;
338
- break;
339
- }
340
- }
341
-
342
- default: {
343
- keyStart = 0;
344
- break;
345
- }
346
- }
347
- break;
348
- }
349
- } else if (code == 91) depth++;
350
- srcStart += 2;
351
- }
352
- } else if (code == 116) {
353
- if (load<u64>(srcStart) == 28429475166421108) {
354
- srcStart += 8;
355
- srcStart += 2;
356
- keyStart = 0;
357
- } else {
358
- throw new Error("Expected to find 'true' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
359
- }
360
- } else if (code == 102) {
361
- if (load<u64>(srcStart, 2) == 28429466576093281) {
362
- srcStart += 10;
363
- srcStart += 2;
364
- keyStart = 0;
365
- } else {
366
- throw new Error("Expected to find 'false' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
367
- }
368
- } else if (code == 110) {
369
- if (load<u64>(srcStart) == 30399761348886638) {
370
- srcStart += 8;
371
- srcStart += 2;
372
- keyStart = 0;
373
- }
374
- } else {
375
- srcStart += 2;
376
- keyStart = 0;
377
- }
378
- }
379
- }
380
- return out;
40
+ return inline.always(this.deserialize(JSON.Util.ptrToStr(srcStart, srcEnd)));
381
41
  }
382
42
  }
383
-
384
- @json
385
- export class Response<T> {
386
- data: T | null = null;
387
- __SERIALIZE(ptr: usize): void {
388
- bs.proposeSize(18);
389
- store<u64>(bs.offset, 27303502239891579, 0);
390
- store<u64>(bs.offset, 16325694684463220, 8);
391
- bs.offset += 16;
392
- JSON.__serialize<T | null>(load<T | null>(ptr, offsetof<this>("data")));
393
- store<u16>(bs.offset, 125, 0);
394
- bs.offset += 2;
43
+ function toHexString(buffer: ArrayBuffer): string {
44
+ const view = Uint8Array.wrap(buffer);
45
+ let hex = "0x";
46
+ for (let i = 0; i < view.length; i++) {
47
+ let byte = view[i];
48
+ hex += byte.toString(16).padStart(2, "0");
395
49
  }
396
-
397
- @inline
398
- __INITIALIZE(): this {
399
- if (isManaged<nonnull<T | null>>() || isReference<nonnull<T | null>>()) {
400
- this.data = changetype<nonnull<T | null>>(__new(offsetof<nonnull<T | null>>(), idof<nonnull<T | null>>()));
401
- if (isDefined(this.data.__INITIALIZE)) changetype<nonnull<T | null>>(this.data).__INITIALIZE();
402
- }
403
- return this;
50
+ return hex;
51
+ }
52
+ function fromHexString(data: string): ArrayBuffer {
53
+ if (data.startsWith("\"0x") || data.startsWith("\"0X")) {
54
+ data = data.slice(3, data.length - 1);
55
+ } else {
56
+ data = data.slice(1, data.length - 1);
404
57
  }
405
- __DESERIALIZE<__JSON_T>(srcStart: usize, srcEnd: usize, out: __JSON_T): __JSON_T {
406
- let keyStart: usize = 0;
407
- let keyEnd: usize = 0;
408
- let isKey = false;
409
- let depth: i32 = 0;
410
- let lastIndex: usize = 0;
411
- while (srcStart < srcEnd && JSON.Util.isSpace(load<u16>(srcStart))) srcStart += 2;
412
- while (srcEnd > srcStart && JSON.Util.isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
413
- if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
414
- if (load<u16>(srcStart) != 123) throw new Error("Expected '{' at start of object at position " + (srcEnd - srcStart).toString());
415
- if (load<u16>(srcEnd - 2) != 125) throw new Error("Expected '}' at end of object at position " + (srcEnd - srcStart).toString());
416
- srcStart += 2;
417
- while (srcStart < srcEnd) {
418
- let code = load<u16>(srcStart);
419
- while (JSON.Util.isSpace(code)) code = load<u16>((srcStart += 2));
420
- if (keyStart == 0) {
421
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
422
- if (isKey) {
423
- keyStart = lastIndex;
424
- keyEnd = srcStart;
425
- while (JSON.Util.isSpace((code = load<u16>((srcStart += 2))))) {}
426
- if (code !== 58) throw new Error("Expected ':' after key at position " + (srcEnd - srcStart).toString());
427
- isKey = false;
428
- } else {
429
- isKey = true;
430
- lastIndex = srcStart + 2;
431
- }
432
- }
433
- srcStart += 2;
434
- } else {
435
- if (code == 34) {
436
- lastIndex = srcStart;
437
- srcStart += 2;
438
- while (srcStart < srcEnd) {
439
- const code = load<u16>(srcStart);
440
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
441
- switch (<u32>keyEnd - <u32>keyStart) {
442
- case 8: {
443
- const code64 = load<u64>(keyStart);
444
- if (isString<T | null>() && code64 == 27303570963497060) {
445
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart + 2), offsetof<this>("data"));
446
- srcStart += 4;
447
- keyStart = 0;
448
- break;
449
- } else {
450
- srcStart += 4;
451
- keyStart = 0;
452
- break;
453
- }
454
- }
455
-
456
- default: {
457
- srcStart += 4;
458
- keyStart = 0;
459
- break;
460
- }
461
- }
462
- break;
463
- }
464
- srcStart += 2;
465
- }
466
- } else if (code - 48 <= 9 || code == 45) {
467
- lastIndex = srcStart;
468
- srcStart += 2;
469
- while (srcStart < srcEnd) {
470
- const code = load<u16>(srcStart);
471
- if (code == 44 || code == 125 || JSON.Util.isSpace(code)) {
472
- switch (<u32>keyEnd - <u32>keyStart) {
473
- case 8: {
474
- const code64 = load<u64>(keyStart);
475
- if ((isInteger<T | null>() || isFloat<T | null>()) && code64 == 27303570963497060) {
476
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart), offsetof<this>("data"));
477
- srcStart += 2;
478
- keyStart = 0;
479
- break;
480
- } else {
481
- srcStart += 2;
482
- keyStart = 0;
483
- break;
484
- }
485
- }
486
-
487
- default: {
488
- srcStart += 2;
489
- keyStart = 0;
490
- break;
491
- }
492
- }
493
- break;
494
- }
495
- srcStart += 2;
496
- }
497
- } else if (code == 123) {
498
- lastIndex = srcStart;
499
- depth++;
500
- srcStart += 2;
501
- while (srcStart < srcEnd) {
502
- const code = load<u16>(srcStart);
503
- if (code == 34) {
504
- srcStart += 2;
505
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
506
- } else if (code == 125) {
507
- if (--depth == 0) {
508
- srcStart += 2;
509
- switch (<u32>keyEnd - <u32>keyStart) {
510
- case 8: {
511
- const code64 = load<u64>(keyStart);
512
- if (isDefined(out.__DESERIALIZE) && code64 == 27303570963497060) {
513
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart), offsetof<this>("data"));
514
- keyStart = 0;
515
- break;
516
- } else {
517
- keyStart = 0;
518
- break;
519
- }
520
- }
521
-
522
- default: {
523
- keyStart = 0;
524
- break;
525
- }
526
- }
527
- break;
528
- }
529
- } else if (code == 123) depth++;
530
- srcStart += 2;
531
- }
532
- } else if (code == 91) {
533
- lastIndex = srcStart;
534
- depth++;
535
- srcStart += 2;
536
- while (srcStart < srcEnd) {
537
- const code = load<u16>(srcStart);
538
- if (code == 34) {
539
- srcStart += 2;
540
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
541
- } else if (code == 93) {
542
- if (--depth == 0) {
543
- srcStart += 2;
544
- switch (<u32>keyEnd - <u32>keyStart) {
545
- case 8: {
546
- const code64 = load<u64>(keyStart);
547
- if (isArray<T | null>() && code64 == 27303570963497060) {
548
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart), offsetof<this>("data"));
549
- keyStart = 0;
550
- break;
551
- } else {
552
- keyStart = 0;
553
- break;
554
- }
555
- }
556
-
557
- default: {
558
- keyStart = 0;
559
- break;
560
- }
561
- }
562
- break;
563
- }
564
- } else if (code == 91) depth++;
565
- srcStart += 2;
566
- }
567
- } else if (code == 116) {
568
- if (load<u64>(srcStart) == 28429475166421108) {
569
- srcStart += 8;
570
- switch (<u32>keyEnd - <u32>keyStart) {
571
- case 8: {
572
- const code64 = load<u64>(keyStart);
573
- if (isBoolean<T | null>() && code64 == 27303570963497060) {
574
- store<boolean>(changetype<usize>(out), true, offsetof<this>("data"));
575
- srcStart += 2;
576
- keyStart = 0;
577
- break;
578
- } else {
579
- srcStart += 2;
580
- keyStart = 0;
581
- break;
582
- }
583
- }
584
-
585
- default: {
586
- srcStart += 2;
587
- keyStart = 0;
588
- }
589
- }
590
- } else {
591
- throw new Error("Expected to find 'true' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
592
- }
593
- } else if (code == 102) {
594
- if (load<u64>(srcStart, 2) == 28429466576093281) {
595
- srcStart += 10;
596
- switch (<u32>keyEnd - <u32>keyStart) {
597
- case 8: {
598
- const code64 = load<u64>(keyStart);
599
- if (isBoolean<T | null>() && code64 == 27303570963497060) {
600
- store<boolean>(changetype<usize>(out), false, offsetof<this>("data"));
601
- srcStart += 2;
602
- keyStart = 0;
603
- break;
604
- } else {
605
- srcStart += 2;
606
- keyStart = 0;
607
- break;
608
- }
609
- }
610
-
611
- default: {
612
- srcStart += 2;
613
- keyStart = 0;
614
- }
615
- }
616
- } else {
617
- throw new Error("Expected to find 'false' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
618
- }
619
- } else if (code == 110) {
620
- if (load<u64>(srcStart) == 30399761348886638) {
621
- srcStart += 8;
622
- switch (<u32>keyEnd - <u32>keyStart) {
623
- case 8: {
624
- const code64 = load<u64>(keyStart);
625
- if (isNullable<T | null>() && code64 == 27303570963497060) {
626
- store<usize>(changetype<usize>(out), 0, offsetof<this>("data"));
627
- srcStart += 2;
628
- keyStart = 0;
629
- break;
630
- } else {
631
- srcStart += 2;
632
- keyStart = 0;
633
- break;
634
- }
635
- }
636
-
637
- default: {
638
- srcStart += 2;
639
- keyStart = 0;
640
- }
641
- }
642
- }
643
- } else {
644
- srcStart += 2;
645
- keyStart = 0;
646
- }
647
- }
648
- }
649
- return out;
58
+ const length = data.length >>> 1;
59
+ const buffer = new ArrayBuffer(length);
60
+ const view = Uint8Array.wrap(buffer);
61
+ for (let i = 0; i < length; i++) {
62
+ const hexByte = data.substr(i * 2, 2);
63
+ view[i] = i8.parse(hexByte, 16);
650
64
  }
65
+ return buffer;
651
66
  }
652
- console.log((isManaged<PeopleData>() || isReference<PeopleData>()).toString());
653
- let deserialized = JSON.parse<Response<PeopleData>>('{"data":{"people":[]}}');
654
- console.log("Deserialized Node: " + JSON.stringify(deserialized));
67
+ const s1 = JSON.stringify(ByteArray.wrap(String.UTF8.encode("Hello there")));
68
+ console.log("s1: " + s1);
69
+ const s2 = JSON.parse<ByteArray>(s1);
70
+ console.log("s2: " + JSON.stringify(s2));
package/assembly/test.ts CHANGED
@@ -1,35 +1,65 @@
1
1
  import { JSON } from ".";
2
2
 
3
-
4
3
  @json
5
- class Person {
6
- id: string | null = null;
7
- firstName: string = "";
8
- lastName: string = "";
9
- }
4
+ class ByteArray extends Uint8Array {
5
+ constructor(length: i32) {
6
+ super(length);
7
+ }
8
+ @serializer
9
+ serialize(): string {
10
+ return `"${toHexString(this.buffer)}"`
11
+ }
10
12
 
13
+ @deserializer
14
+ deserialize(data: string): ByteArray {
15
+ if (data.charCodeAt(0) != 34 || data.charCodeAt(data.length - 1) != 34)
16
+ throw new Error("Expected Address to be of type string but found otherwise!");
11
17
 
12
- @json
13
- class PeopleData {
14
- people: Person[] = [];
18
+ const out = new ByteArray((data.length / 2) - i32(data.startsWith("0x")));
19
+ store<ArrayBuffer>(changetype<usize>(out), fromHexString(data), offsetof<ByteArray>("buffer"));
20
+ // We can't use out.buffer = ... here because it's a readonly value.
21
+ // This works around that
22
+
23
+ return out;
24
+ }
25
+ static wrap(buffer: ArrayBuffer, byteOffset: i32 = 0, length: i32 = -1): ByteArray {
26
+ return changetype<ByteArray>(Uint8Array.wrap(buffer, byteOffset, length));
27
+ }
15
28
  }
16
29
 
30
+ function toHexString(buffer: ArrayBuffer): string {
31
+ const view = Uint8Array.wrap(buffer);
32
+ let hex = "0x";
17
33
 
18
- @json
19
- export class Response<T> {
20
- // errors: ErrorResult[] | null = null;
21
- data: T | null = null;
22
- // extensions: Map<string, ???> | null = null;
34
+ for (let i = 0; i < view.length; i++) {
35
+ let byte = view[i];
36
+ hex += byte.toString(16).padStart(2, "0");
37
+ }
38
+
39
+ return hex;
23
40
  }
24
41
 
25
- console.log((isManaged<PeopleData>() || isReference<PeopleData>()).toString());
26
42
 
27
- // const serialized = JSON.stringify(new Response<PeopleData>());
28
- // console.log("Serialized Node: " + serialized);
43
+ function fromHexString(data: string): ArrayBuffer {
44
+ if (data.startsWith("\"0x") || data.startsWith("\"0X")) {
45
+ data = data.slice(3, data.length - 1);
46
+ } else {
47
+ data = data.slice(1, data.length - 1);
48
+ }
49
+
50
+ const length = data.length >>> 1;
51
+ const buffer = new ArrayBuffer(length);
52
+ const view = Uint8Array.wrap(buffer);
53
+
54
+ for (let i = 0; i < length; i++) {
55
+ const hexByte = data.substr(i * 2, 2);
56
+ view[i] = i8.parse(hexByte, 16);
57
+ }
58
+ return buffer
59
+ }
29
60
 
30
- let deserialized = JSON.parse<Response<PeopleData>>('{"data":{"people":[]}}');
31
- console.log("Deserialized Node: " + JSON.stringify(deserialized));
61
+ const s1 = JSON.stringify(ByteArray.wrap(String.UTF8.encode("Hello there")));
62
+ console.log("s1: " + s1)
32
63
 
33
- // const deserialized2 = JSON.parse<Response<i32>>('{"data":0}');
34
- // console.log("Deserialized Node: " + JSON.stringify(deserialized2));
35
- // {"data":{"people":[]}}
64
+ const s2 = JSON.parse<ByteArray>(s1);
65
+ console.log("s2: " + JSON.stringify(s2));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-as",
3
- "version": "1.1.15-preview.4",
3
+ "version": "1.1.15-preview.5",
4
4
  "author": "Jairus Tanaka",
5
5
  "repository": {
6
6
  "type": "git",
@@ -249,7 +249,7 @@ export class JSONTransform extends Visitor {
249
249
  DESERIALIZE_CUSTOM += " return inline.always(this." + deserializer.name.text + "(JSON.Util.ptrToStr(srcStart, srcEnd)));\n";
250
250
  DESERIALIZE_CUSTOM += " }\n";
251
251
  }
252
- if (!members.length) {
252
+ if (!members.length && !deserializers.length && !serializers.length) {
253
253
  this.generateEmptyMethods(node);
254
254
  return;
255
255
  }
@@ -438,10 +438,7 @@ export class JSONTransform extends Visitor {
438
438
  sortedMembers.number.push(member);
439
439
  else if (isArray(type))
440
440
  sortedMembers.array.push(member);
441
- else if (isStruct(type))
442
- sortedMembers.object.push(member);
443
- else
444
- console.warn("Could not determine type " + type + " for member " + member.name + " in class " + this.schema.name);
441
+ sortedMembers.object.push(member);
445
442
  }
446
443
  }
447
444
  indent = "";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -250,7 +250,7 @@ export class JSONTransform extends Visitor {
250
250
  DESERIALIZE_CUSTOM += " }\n";
251
251
  }
252
252
 
253
- if (!members.length) {
253
+ if (!members.length && !deserializers.length && !serializers.length) {
254
254
  this.generateEmptyMethods(node);
255
255
  return;
256
256
  }
@@ -448,8 +448,8 @@ export class JSONTransform extends Visitor {
448
448
  else if (isBoolean(type) || type.startsWith("JSON.Box<bool")) sortedMembers.boolean.push(member);
449
449
  else if (isPrimitive(type) || type.startsWith("JSON.Box<")) sortedMembers.number.push(member);
450
450
  else if (isArray(type)) sortedMembers.array.push(member);
451
- else if (isStruct(type)) sortedMembers.object.push(member);
452
- else console.warn("Could not determine type " + type + " for member " + member.name + " in class " + this.schema.name);
451
+ /*else if (isStruct(type)) */ sortedMembers.object.push(member);
452
+ // else console.warn("Could not determine type " + type + " for member " + member.name + " in class " + this.schema.name);
453
453
  }
454
454
  }
455
455