json-as 1.2.6 → 1.3.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.
- package/CHANGELOG.md +417 -0
- package/README.md +135 -36
- package/assembly/custom/util.ts +24 -70
- package/assembly/deserialize/float.ts +181 -0
- package/assembly/deserialize/helpers/uint.ts +12 -0
- package/assembly/deserialize/index/arbitrary.ts +25 -0
- package/assembly/deserialize/index/array.ts +61 -0
- package/assembly/deserialize/index/bool.ts +1 -0
- package/assembly/deserialize/index/date.ts +1 -0
- package/assembly/deserialize/index/float.ts +1 -0
- package/assembly/deserialize/index/integer.ts +1 -0
- package/assembly/deserialize/index/map.ts +1 -0
- package/assembly/deserialize/index/object.ts +1 -0
- package/assembly/deserialize/index/raw.ts +1 -0
- package/assembly/deserialize/index/set.ts +1 -0
- package/assembly/deserialize/index/staticarray.ts +1 -0
- package/assembly/deserialize/index/string.ts +15 -0
- package/assembly/deserialize/index/struct.ts +1 -0
- package/assembly/deserialize/index/typedarray.ts +15 -0
- package/assembly/deserialize/index/unsigned.ts +1 -0
- package/assembly/deserialize/index.ts +14 -0
- package/assembly/deserialize/integer.ts +42 -0
- package/assembly/deserialize/simd/array/integer.ts +307 -0
- package/assembly/deserialize/simd/string.ts +130 -11
- package/assembly/deserialize/simple/arbitrary.ts +5 -12
- package/assembly/deserialize/simple/array/arbitrary.ts +12 -36
- package/assembly/deserialize/simple/array/array.ts +2 -8
- package/assembly/deserialize/simple/array/bool.ts +2 -8
- package/assembly/deserialize/simple/array/box.ts +2 -8
- package/assembly/deserialize/simple/array/float.ts +2 -8
- package/assembly/deserialize/simple/array/integer.ts +2 -8
- package/assembly/deserialize/simple/array/map.ts +6 -26
- package/assembly/deserialize/simple/array/object.ts +6 -26
- package/assembly/deserialize/simple/array/raw.ts +18 -61
- package/assembly/deserialize/simple/array/string.ts +5 -10
- package/assembly/deserialize/simple/array/struct.ts +6 -26
- package/assembly/deserialize/simple/array.ts +2 -5
- package/assembly/deserialize/simple/bool.ts +2 -6
- package/assembly/deserialize/simple/map.ts +29 -102
- package/assembly/deserialize/simple/object.ts +24 -81
- package/assembly/deserialize/simple/raw.ts +1 -4
- package/assembly/deserialize/simple/set.ts +11 -37
- package/assembly/deserialize/simple/staticarray/array.ts +1 -1
- package/assembly/deserialize/simple/staticarray/bool.ts +1 -1
- package/assembly/deserialize/simple/staticarray/float.ts +1 -1
- package/assembly/deserialize/simple/staticarray/integer.ts +1 -1
- package/assembly/deserialize/simple/staticarray/string.ts +7 -14
- package/assembly/deserialize/simple/staticarray/struct.ts +1 -1
- package/assembly/deserialize/simple/staticarray.ts +57 -21
- package/assembly/deserialize/simple/string.ts +90 -10
- package/assembly/deserialize/simple/struct.ts +25 -121
- package/assembly/deserialize/simple/typedarray.ts +94 -0
- package/assembly/deserialize/swar/array/arbitrary.ts +8 -0
- package/assembly/deserialize/swar/array/array.ts +39 -0
- package/assembly/deserialize/swar/array/bool.ts +47 -0
- package/assembly/deserialize/swar/array/box.ts +8 -0
- package/assembly/deserialize/swar/array/float.ts +39 -0
- package/assembly/deserialize/swar/array/integer.ts +461 -0
- package/assembly/deserialize/swar/array/map.ts +7 -0
- package/assembly/deserialize/swar/array/object.ts +44 -0
- package/assembly/deserialize/swar/array/raw.ts +8 -0
- package/assembly/deserialize/swar/array/shared.ts +96 -0
- package/assembly/deserialize/swar/array/string.ts +39 -0
- package/assembly/deserialize/swar/array/struct.ts +44 -0
- package/assembly/deserialize/swar/array.ts +49 -0
- package/assembly/deserialize/swar/string.ts +648 -15
- package/assembly/deserialize/unsigned.ts +75 -0
- package/assembly/index.d.ts +1 -3
- package/assembly/index.ts +316 -374
- package/assembly/serialize/index/arbitrary.ts +75 -0
- package/assembly/serialize/index/array.ts +1 -0
- package/assembly/serialize/index/bool.ts +1 -0
- package/assembly/serialize/index/date.ts +1 -0
- package/assembly/serialize/index/float.ts +1 -0
- package/assembly/serialize/index/integer.ts +1 -0
- package/assembly/serialize/index/map.ts +1 -0
- package/assembly/serialize/index/object.ts +46 -0
- package/assembly/serialize/index/raw.ts +1 -0
- package/assembly/serialize/index/set.ts +1 -0
- package/assembly/serialize/index/staticarray.ts +1 -0
- package/assembly/serialize/index/string.ts +15 -0
- package/assembly/serialize/index/struct.ts +1 -0
- package/assembly/serialize/index/typedarray.ts +66 -0
- package/assembly/serialize/index.ts +13 -0
- package/assembly/serialize/simd/string.ts +4 -13
- package/assembly/serialize/simple/arbitrary.ts +6 -0
- package/assembly/serialize/simple/raw.ts +1 -5
- package/assembly/serialize/simple/string.ts +3 -11
- package/assembly/serialize/simple/typedarray.ts +63 -0
- package/assembly/serialize/swar/string.ts +6 -21
- package/assembly/util/concat.ts +1 -5
- package/assembly/util/index.ts +1 -0
- package/assembly/util/masks.ts +12 -18
- package/assembly/util/memory.ts +0 -0
- package/assembly/util/snp.ts +1 -4
- package/assembly/util/stringScan.ts +24 -0
- package/assembly/util/swar.ts +50 -6
- package/lib/as-bs.ts +137 -127
- package/package.json +26 -5
- package/transform/lib/builder.d.ts.map +1 -1
- package/transform/lib/builder.js +5 -13
- package/transform/lib/builder.js.map +1 -1
- package/transform/lib/index.d.ts +1 -0
- package/transform/lib/index.d.ts.map +1 -1
- package/transform/lib/index.js +672 -757
- package/transform/lib/index.js.map +1 -1
- package/transform/lib/linkers/alias.d.ts.map +1 -1
- package/transform/lib/linkers/alias.js.map +1 -1
- package/transform/lib/linkers/custom.d.ts.map +1 -1
- package/transform/lib/linkers/custom.js +8 -9
- package/transform/lib/linkers/custom.js.map +1 -1
- package/transform/lib/linkers/imports.d.ts.map +1 -1
- package/transform/lib/linkers/imports.js.map +1 -1
- package/transform/lib/types.d.ts +6 -0
- package/transform/lib/types.d.ts.map +1 -1
- package/transform/lib/types.js +83 -21
- package/transform/lib/types.js.map +1 -1
- package/transform/lib/util.d.ts.map +1 -1
- package/transform/lib/util.js +1 -1
- package/transform/lib/util.js.map +1 -1
- package/transform/lib/visitor.d.ts.map +1 -1
- package/transform/lib/visitor.js +1 -2
- package/transform/lib/visitor.js.map +1 -1
- package/.prettierrc +0 -3
- package/ARCHITECTURE.md +0 -320
- package/CONTRIBUTING.md +0 -238
- package/TODO +0 -1
- package/assembly/deserialize/simple/float.ts +0 -11
- package/assembly/deserialize/simple/integer.ts +0 -9
- package/assembly/test.ts +0 -30
- package/eslint.config.js +0 -60
- package/lib/tsconfig.json +0 -8
- package/tools/assemblyscript-eslint-local.js +0 -29
- package/tools/assemblyscript-eslint.js +0 -29
- package/transform/tsconfig.json +0 -35
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { JSON } from "../..";
|
|
2
|
+
import { deserializeArbitraryArrayField } from "./array/arbitrary";
|
|
3
|
+
import { deserializeArrayArrayField } from "./array/array";
|
|
4
|
+
import { deserializeBooleanArrayField } from "./array/bool";
|
|
5
|
+
import { deserializeBoxArrayField } from "./array/box";
|
|
6
|
+
import { deserializeFloatArrayField } from "./array/float";
|
|
7
|
+
import { deserializeIntegerArrayField } from "./array/integer";
|
|
8
|
+
import { deserializeMapArrayField } from "./array/map";
|
|
9
|
+
import { deserializeObjectArrayField } from "./array/object";
|
|
10
|
+
import { deserializeRawArrayField } from "./array/raw";
|
|
11
|
+
import { deserializeStringArrayField } from "./array/string";
|
|
12
|
+
import { deserializeStructArrayField } from "./array/struct";
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@inline export function deserializeArrayField<T extends unknown[]>(srcStart: usize, srcEnd: usize, fieldPtr: usize): usize {
|
|
16
|
+
if (isString<valueof<T>>()) {
|
|
17
|
+
return deserializeStringArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
18
|
+
} else if (isBoolean<valueof<T>>()) {
|
|
19
|
+
return deserializeBooleanArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
20
|
+
} else if (isInteger<valueof<T>>()) {
|
|
21
|
+
return deserializeIntegerArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
22
|
+
} else if (isFloat<valueof<T>>()) {
|
|
23
|
+
return deserializeFloatArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
24
|
+
} else if (isArray<valueof<T>>()) {
|
|
25
|
+
return deserializeArrayArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
26
|
+
} else if (isManaged<valueof<T>>() || isReference<valueof<T>>()) {
|
|
27
|
+
const type = changetype<nonnull<valueof<T>>>(0);
|
|
28
|
+
if (type instanceof JSON.Value) {
|
|
29
|
+
return deserializeArbitraryArrayField(srcStart, srcEnd, fieldPtr);
|
|
30
|
+
} else if (type instanceof JSON.Box) {
|
|
31
|
+
return deserializeBoxArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
32
|
+
} else if (type instanceof JSON.Obj) {
|
|
33
|
+
return deserializeObjectArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
34
|
+
} else if (type instanceof JSON.Raw) {
|
|
35
|
+
return deserializeRawArrayField(srcStart, srcEnd, fieldPtr);
|
|
36
|
+
} else if (type instanceof Map) {
|
|
37
|
+
return deserializeMapArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
38
|
+
// @ts-ignore: defined by transform
|
|
39
|
+
} else if (isDefined(type.__DESERIALIZE_CUSTOM)) {
|
|
40
|
+
return deserializeStructArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
41
|
+
// @ts-ignore: defined by transform
|
|
42
|
+
} else if (isDefined(type.__DESERIALIZE)) {
|
|
43
|
+
return deserializeStructArrayField<T>(srcStart, srcEnd, fieldPtr);
|
|
44
|
+
}
|
|
45
|
+
throw new Error("Could not parse array field of type " + nameof<T>() + "!");
|
|
46
|
+
} else {
|
|
47
|
+
throw new Error("Could not parse array field of type " + nameof<T>() + "!");
|
|
48
|
+
}
|
|
49
|
+
}
|