json-as 0.6.3 → 0.6.4

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/assembly/test.ts CHANGED
@@ -45,6 +45,29 @@ console.log("Implemented: " + JSON.stringify(JSON.parse<Vec3>('{}', true)));
45
45
  console.log("Original: " + JSON.stringify(player));
46
46
  //console.log("Revised: " + vec.__JSON_Deserialize('{"x":3,"y":1,"z":8}').__JSON_Serialize());
47
47
  console.log("Implemented: " + JSON.stringify(JSON.parse<Player>('{"firstName":"Emmet","lastName":"West","lastActive":"2023-11-16T04:06:35.108285303Z","age":23,"pos":{"x":3.4,"y":1.2,"z":8.3},"isVerified":true}')));
48
+
49
+ @serializable
50
+ class Wrapper<T> {
51
+ data!: T;
52
+ }
53
+
54
+ @serializable
55
+ class Foo {
56
+ foo!: string;
57
+ }
58
+
59
+ @serializable
60
+ class Bar {
61
+ bar!: string;
62
+ }
63
+
64
+ const foo: Wrapper<Foo> = {
65
+ data: new Foo()
66
+ }
67
+
68
+ foo.data.foo = "ha";
69
+ console.log(JSON.stringify(foo));
70
+ console.log(JSON.stringify(JSON.parse<Wrapper<Foo>>("{\"data\":{\"foo\":\"ha\"}}")))
48
71
  /*
49
72
  // 9,325,755
50
73
  bench("Stringify Object (Vec3)", () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-as",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
5
  "types": "assembly/index.ts",
6
6
  "author": "Jairus Tanaka",
@@ -157,7 +157,7 @@ class AsJSONTransform extends BaseVisitor {
157
157
  // Odd behavior here... When pairing this transform with asyncify, having @inline on __JSON_Set_Key<T> with a generic will cause it to freeze.
158
158
  // Binaryen cannot predict and add/mangle code when it is genericed.
159
159
  const setKeyFunc = `
160
- __JSON_Set_Key<T>(key: T, data: string, val_start: i32, val_end: i32, initializeDefaultValues: boolean): void {
160
+ __JSON_Set_Key<__JSON_Key_Type>(key: __JSON_Key_Type, data: string, val_start: i32, val_end: i32, initializeDefaultValues: boolean): void {
161
161
  ${
162
162
  // @ts-ignore
163
163
  this.currentClass.setDataStmts.join("")}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@json-as/transform",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
5
  "main": "./lib/index.js",
6
6
  "author": "Jairus Tanaka",
@@ -195,7 +195,7 @@ class AsJSONTransform extends BaseVisitor {
195
195
  // Odd behavior here... When pairing this transform with asyncify, having @inline on __JSON_Set_Key<T> with a generic will cause it to freeze.
196
196
  // Binaryen cannot predict and add/mangle code when it is genericed.
197
197
  const setKeyFunc = `
198
- __JSON_Set_Key<T>(key: T, data: string, val_start: i32, val_end: i32, initializeDefaultValues: boolean): void {
198
+ __JSON_Set_Key<__JSON_Key_Type>(key: __JSON_Key_Type, data: string, val_start: i32, val_end: i32, initializeDefaultValues: boolean): void {
199
199
  ${
200
200
  // @ts-ignore
201
201
  this.currentClass.setDataStmts.join("")