json-as 0.9.9 → 0.9.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-as",
3
- "version": "0.9.9",
3
+ "version": "0.9.10",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
5
  "types": "assembly/index.ts",
6
6
  "author": "Jairus Tanaka",
@@ -17,7 +17,7 @@
17
17
  "scripts": {
18
18
  "test": "wasmtime build/test.spec.wasm",
19
19
  "pretest": "asc assembly/__tests__/test.spec.ts --target test",
20
- "build:test": "JSON_DEBUG=true asc assembly/test.ts --target debug",
20
+ "build:test": "JSON_DEBUG=true asc assembly/test.ts --transform ./transform -o ./build/test.wasm",
21
21
  "build:bench": "asc bench/benchmark.ts -o bench/benchmark.wasm --transform ./transform --optimizeLevel 3 --shrinkLevel 0 --converge --noAssert --uncheckedBehavior always --runtime stub",
22
22
  "bench:wasmtime": "wasmtime ./bench/benchmark.wasm",
23
23
  "bench:wasmer": "wasmer --llvm ./bench/benchmark.wasm",
@@ -35,7 +35,6 @@
35
35
  "assemblyscript": "^0.27.28",
36
36
  "assemblyscript-prettier": "^3.0.1",
37
37
  "benchmark": "^2.1.4",
38
- "json-as": "link:json-as",
39
38
  "microtime": "^3.1.1",
40
39
  "prettier": "^3.3.2",
41
40
  "tinybench": "^2.8.0",
@@ -1,4 +1,3 @@
1
- import { FieldDeclaration } from "assemblyscript/dist/assemblyscript.js";
2
1
  import { toString, isStdlib } from "visitor-as/dist/utils.js";
3
2
  import { BaseVisitor, SimpleParser } from "visitor-as/dist/index.js";
4
3
  import { Transform } from "assemblyscript/dist/transform.js";
@@ -26,7 +25,7 @@ class JSONTransform extends BaseVisitor {
26
25
  schema.node = node;
27
26
  schema.name = node.name.text;
28
27
  const members = [
29
- ...node.members.filter(v => v instanceof FieldDeclaration)
28
+ ...node.members.filter(v => v.kind === 54 /* NodeKind.FieldDeclaration */)
30
29
  ];
31
30
  if (node.extendsType) {
32
31
  schema.parent = this.schemasList.find((v) => v.name == node.extendsType?.name.identifier.text);
@@ -63,8 +62,6 @@ class JSONTransform extends BaseVisitor {
63
62
  this.schemasList.push(schema);
64
63
  }
65
64
  for (const member of members) {
66
- if (!(member instanceof FieldDeclaration))
67
- continue;
68
65
  const name = member.name;
69
66
  if (!member.type) {
70
67
  throw new Error("Fields must be strongly typed! Found " + toString(member) + " at " + node.range.source.normalizedPath);
@@ -159,8 +156,22 @@ class JSONTransform extends BaseVisitor {
159
156
  else if (t === "Array") {
160
157
  mem.initialize = "this." + name.text + " = instantiate<" + mem.type + ">()";
161
158
  }
162
- else {
163
- console.log(t);
159
+ else if (t === "bool" || t === "boolean") {
160
+ mem.initialize = "this." + name.text + " = false";
161
+ }
162
+ else if (t === "u8" ||
163
+ t === "u16" ||
164
+ t === "u32" ||
165
+ t === "u64" ||
166
+ t === "i8" ||
167
+ t === "i16" ||
168
+ t === "i32" ||
169
+ t === "i64") {
170
+ mem.initialize = "this." + name.text + " = 0";
171
+ }
172
+ else if (t === "f32" ||
173
+ t === "f64") {
174
+ mem.initialize = "this." + name.text + " = 0.0";
164
175
  }
165
176
  schema.members.push(mem);
166
177
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@json-as/transform",
3
- "version": "0.9.9",
3
+ "version": "0.9.10",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
5
  "main": "./lib/index.js",
6
6
  "author": "Jairus Tanaka",
@@ -5,14 +5,14 @@ import {
5
5
  NamedTypeNode,
6
6
  StringLiteralExpression,
7
7
  Parser,
8
- Source
8
+ Source,
9
+ NodeKind
9
10
  } from "assemblyscript/dist/assemblyscript.js";
10
11
 
11
12
  import { toString, isStdlib } from "visitor-as/dist/utils.js";
12
13
  import { BaseVisitor, SimpleParser } from "visitor-as/dist/index.js";
13
14
  import { Transform } from "assemblyscript/dist/transform.js";
14
15
  import { CommonFlags } from "types:assemblyscript/src/common";
15
- import { DecoratorNode } from "types:assemblyscript/src/ast";
16
16
 
17
17
  class JSONTransform extends BaseVisitor {
18
18
  public schemasList: SchemaData[] = [];
@@ -38,7 +38,7 @@ class JSONTransform extends BaseVisitor {
38
38
  schema.name = node.name.text;
39
39
 
40
40
  const members = [
41
- ...node.members.filter(v => v instanceof FieldDeclaration)
41
+ ...node.members.filter(v => v.kind === NodeKind.FieldDeclaration)
42
42
  ];
43
43
 
44
44
  if (node.extendsType) {
@@ -86,7 +86,6 @@ class JSONTransform extends BaseVisitor {
86
86
  }
87
87
 
88
88
  for (const member of members) {
89
- if (!(member instanceof FieldDeclaration)) continue;
90
89
  const name = member.name;
91
90
  if (!member.type) {
92
91
  throw new Error("Fields must be strongly typed! Found " + toString(member) + " at " + node.range.source.normalizedPath);
@@ -170,8 +169,24 @@ class JSONTransform extends BaseVisitor {
170
169
  mem.initialize = "this." + name.text + " = \"\"";
171
170
  } else if (t === "Array") {
172
171
  mem.initialize = "this." + name.text + " = instantiate<" + mem.type + ">()";
173
- } else {
174
- console.log(t)
172
+ } else if (t === "bool" || t === "boolean") {
173
+ mem.initialize = "this." + name.text + " = false";
174
+ } else if (
175
+ t === "u8" ||
176
+ t === "u16" ||
177
+ t === "u32" ||
178
+ t === "u64" ||
179
+ t === "i8" ||
180
+ t === "i16" ||
181
+ t === "i32" ||
182
+ t === "i64"
183
+ ) {
184
+ mem.initialize = "this." + name.text + " = 0";
185
+ } else if (
186
+ t === "f32" ||
187
+ t === "f64"
188
+ ) {
189
+ mem.initialize = "this." + name.text + " = 0.0";
175
190
  }
176
191
 
177
192
  schema.members.push(mem);