json-as 0.8.7 → 0.8.8

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
@@ -1,41 +1,30 @@
1
- import { JSON } from ".";
1
+ import { Box } from "as-container";
2
+ import { JSON } from "./src/json";
2
3
 
3
4
  @json
4
- class Vec3 {
5
- x: f32 = 0.0;
6
- y: f32 = 0.0;
7
- z: f32 = 0.0;
5
+ class Foo {
6
+ @omitnull
7
+ optionalNumber: Box<i32> | null = null;
8
+ @omitif("this.tristateValue!.unwrap() == false")
9
+ tristateValue: Box<bool> | null = null;
8
10
  }
9
11
 
10
12
  @json
11
- class Player {
12
- @alias("first name")
13
- firstName!: string;
14
- lastName!: string;
15
- lastActive!: i32[];
16
- @omitif("this.age < 18")
17
- age!: i32;
18
- @omitnull()
19
- pos!: Vec3 | null;
20
- isVerified!: boolean;
13
+ class TestBody {
14
+ a!: string;
15
+ b!: u8;
21
16
  }
22
17
 
23
- const player: Player = {
24
- firstName: "Emmet",
25
- lastName: "West",
26
- lastActive: [8, 27, 2022],
27
- age: 13,
28
- pos: {
29
- x: 3.4,
30
- y: 1.2,
31
- z: 8.3
32
- },
33
- isVerified: true
34
- };
35
-
36
- const stringified = JSON.stringify<Player>(player);
37
-
38
- const parsed = JSON.parse<Player>(stringified);
18
+ const foo: Foo = {
19
+ optionalNumber: null,
20
+ tristateValue: Box.from(true)
21
+ }
22
+ console.log(JSON.stringify(JSON.parse<TestBody[]>('[{"a":"hi","b":5},{"a":"bye","b":6}]')))
23
+ console.log(JSON.stringify([foo, foo]))
24
+ console.log(JSON.stringify(foo));
39
25
 
40
- console.log("Stringified: " + stringified);
41
- console.log("Parsed: " + JSON.stringify(parsed));
26
+ const p1 = JSON.parse<Box<i32> | null>("null");
27
+ console.log(JSON.stringify<Box<i32> | null>(p1));
28
+ console.log(changetype<usize>(p1).toString())
29
+ const p2 = JSON.parse<Foo>("{\"optionalNumber\":null,\"tristateValue\":false}");
30
+ console.log(JSON.stringify(p2));
@@ -26,14 +26,14 @@ bench("Parse Number ATOI", () => {
26
26
  bench("Parse Number STDLIB", () => {
27
27
  blackbox<i32>(i32.parse("12345"));
28
28
  });
29
-
29
+ */
30
30
  bench("Stringify Object (Vec3)", () => {
31
31
  blackbox<string>(JSON.stringify(vec));
32
- });*/
32
+ });
33
33
 
34
34
  bench("Parse Object (Vec3)", () => {
35
35
  blackbox<Vec3>(JSON.parse<Vec3>('{"x":0,"y":0,"z":0}'));
36
- });/*
36
+ });
37
37
 
38
38
  bench("Stringify Number Array", () => {
39
39
  blackbox<string>(JSON.stringify<i32[]>([1, 2, 3]));
@@ -47,10 +47,6 @@ bench("Stringify String", () => {
47
47
  blackbox<string>(JSON.stringify(blackbox('Hello "World!')));
48
48
  });
49
49
 
50
- bench("Parse Number ATOI", () => {
51
- blackbox<i32>(__atoi_fast<i32>("12345"));
52
- })
53
-
54
50
  bench("Parse String", () => {
55
51
  blackbox<string>(JSON.parse<string>(blackbox('"Hello "World!"')));
56
52
  });
package/bench.js CHANGED
@@ -34,18 +34,7 @@ const vec = {
34
34
  let data;
35
35
 
36
36
  const bench = new Bench({ time: 1000 })
37
- /*.add("stringify float", () => {
38
- data = JSON.stringify(1.2345)
39
- })
40
- .add("parse float", () => {
41
- data = JSON.parse("1.2345")
42
- })
43
- .add("stringify iny", () => {
44
- data = JSON.stringify(12345)
45
- })
46
- .add("parse int", () => {
47
- data = JSON.parse("12345")
48
- })
37
+
49
38
  .add("Stringify Object (Vec3)", () => {
50
39
  data = JSON.stringify(vec);
51
40
  })
@@ -65,9 +54,9 @@ const bench = new Bench({ time: 1000 })
65
54
  .add("Stringify String", () => {
66
55
  data = JSON.stringify('Hello "World!');
67
56
  })
68
- */
57
+
69
58
  .add("Parse String", () => {
70
- data = JSON.parse('[[],[[]],[[],[[]]]]');
59
+ data = JSON.parse('"Hello "World!"');
71
60
  })
72
61
  .todo("unimplemented .add");
73
62
 
package/index.ts CHANGED
@@ -1 +1 @@
1
- export { JSON } from "./assembly/index";
1
+ export { JSON } from "./assembly/src/json";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-as",
3
- "version": "0.8.7",
3
+ "version": "0.8.8",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
5
  "types": "assembly/index.ts",
6
6
  "author": "Jairus Tanaka",
@@ -15,12 +15,12 @@
15
15
  ],
16
16
  "license": "MIT",
17
17
  "scripts": {
18
- "test": "wasmtime build/serialize.spec.wasm && wasmtime build/deserialize.spec.wasm",
19
- "tests:build": "asc assembly/__tests__/serialize.spec.ts -o build/serialize.spec.wasm --transform ./transform --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json --optimizeLevel 0 --shrinkLevel 0 --noAssert --uncheckedBehavior always & asc assembly/__tests__/deserialize.spec.ts -o build/deserialize.spec.wasm --transform ./transform --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json --optimizeLevel 0 --shrinkLevel 0 --noAssert --uncheckedBehavior always",
20
- "build:test": "asc assembly/test.ts -o build/test.wasm --transform ./transform --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json --optimizeLevel 0 --shrinkLevel 0 --noAssert --uncheckedBehavior always",
18
+ "test": "asp",
19
+ "bench:astral": "astral --optimizeLevel 3 --shrinkLevel 0 --converge --noAssert --uncheckedBehavior never --runtime stub",
20
+ "build:test": "asc assembly/test.ts -o build/test.wasm --transform ./transform --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json --optimizeLevel 0 --shrinkLevel 0 --noAssert --uncheckedBehavior always --runtime stub",
21
21
  "build:bench": "asc bench/benchmark.ts -o bench/benchmark.wasm --transform ./transform --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json --optimizeLevel 3 --shrinkLevel 0 --converge --noAssert --uncheckedBehavior always --runtime stub",
22
22
  "bench:wasmtime": "wasmtime ./bench/benchmark.wasm",
23
- "bench:wazmer": "wasmer --llvm ./bench/benchmark.wasm",
23
+ "bench:wavm": "wavm run ./bench/benchmark.wasm",
24
24
  "build:transform": "tsc -p ./transform",
25
25
  "test:wasmtime": "wasmtime ./build/test.wasm",
26
26
  "test:wavm": "wavm run ./build/test.wasm",
@@ -29,12 +29,14 @@
29
29
  "prettier": "as-prettier -w ."
30
30
  },
31
31
  "devDependencies": {
32
+ "@as-pect/cli": "^8.1.0",
33
+ "@as-tral/cli": "^3.0.2",
32
34
  "@assemblyscript/wasi-shim": "^0.1.0",
33
35
  "as-bench": "^0.0.0-alpha",
34
- "as-test": "JairusSW/as-test",
35
36
  "assemblyscript": "^0.27.22",
36
37
  "assemblyscript-prettier": "^3.0.1",
37
38
  "benchmark": "^2.1.4",
39
+ "kati": "^0.6.2",
38
40
  "microtime": "^3.1.1",
39
41
  "prettier": "^3.1.1",
40
42
  "tinybench": "^2.5.1",