// import { JSON } from "."; | ||
import { JSON } from "."; | ||
@json | ||
class Vec3 { | ||
x: f32 = 0.0; | ||
y: f32 = 0.0; | ||
z: f32 = 0.0; | ||
class Message { | ||
constructor(role: string, content: string) { | ||
this._role = role; | ||
this.content = content; | ||
} | ||
@alias("role") | ||
protected _role: string; | ||
get role(): string { | ||
return this._role; | ||
} | ||
content: string; | ||
} | ||
@json | ||
class Player { | ||
firstName!: string; | ||
lastName!: string; | ||
lastActive!: i32[]; | ||
age!: i32; | ||
pos!: JSON.Raw; | ||
isVerified!: boolean; | ||
class UserMessage extends Message { | ||
constructor(content: string) { | ||
super("user", content); | ||
} | ||
} | ||
const player: Player = { | ||
firstName: "Emmet", | ||
lastName: "West", | ||
lastActive: [8, 27, 2022], | ||
age: 23, | ||
pos: "{\"x\":3.4,\"y\":1.2,\"z\":8.3}", | ||
isVerified: true | ||
}; | ||
const stringified = JSON.stringify<Player>(player); | ||
console.log(stringified); | ||
console.log(idof<JSON.Raw>().toString()); | ||
console.log(idof<string>().toString()) | ||
// const parsed = JSON.parse<Player>(stringified); | ||
console.log(JSON.stringify(new Message("user", "foo"))) | ||
console.log(JSON.stringify(new UserMessage("foo"))); |
@@ -27,2 +27,3 @@ v0.8.2 - Properties starting with `static` or `private` would be ignored | ||
v0.9.16 - JSON.Raw should be completely untouched | ||
v0.9.17 - A schema's parent's fields should be included properly | ||
@@ -29,0 +30,0 @@ [UNRELEASED] v1.0.0 |
{ | ||
"name": "json-as", | ||
"version": "0.9.16", | ||
"version": "0.9.17", | ||
"description": "The only JSON library you'll need for AssemblyScript. SIMD enabled", | ||
@@ -5,0 +5,0 @@ "types": "assembly/index.ts", |
@@ -6,3 +6,3 @@ <h5 align="center"> | ||
|_____||_____||_____||_|___| |__|__||_____| | ||
v0.9.16 | ||
v0.9.17 | ||
</pre> | ||
@@ -9,0 +9,0 @@ </h5> |
@@ -34,6 +34,7 @@ import { FieldDeclaration } from "assemblyscript/dist/assemblyscript.js"; | ||
if (schema.parent?.members) { | ||
for (let i = 0; i < schema.parent.members.length; i++) { | ||
for (let i = schema.parent.members.length - 1; i >= 0; i--) { | ||
const replace = schema.members.find((v) => v.name == schema.parent?.members[i]?.name); | ||
if (!replace) { | ||
schema.members.unshift(schema.parent.members[i]); | ||
//schema.members.unshift(schema.parent?.members[i]!); | ||
members.unshift(schema.parent?.members[i].node); | ||
} | ||
@@ -40,0 +41,0 @@ } |
{ | ||
"name": "@json-as/transform", | ||
"version": "0.9.16", | ||
"version": "0.9.17", | ||
"description": "The only JSON library you'll need for AssemblyScript. SIMD enabled", | ||
@@ -5,0 +5,0 @@ "main": "./lib/index.js", |
@@ -51,3 +51,3 @@ import { | ||
if (schema.parent?.members) { | ||
for (let i = 0; i < schema.parent.members.length; i++) { | ||
for (let i = schema.parent.members.length - 1; i >= 0; i--) { | ||
const replace = schema.members.find( | ||
@@ -57,3 +57,4 @@ (v) => v.name == schema.parent?.members[i]?.name | ||
if (!replace) { | ||
schema.members.unshift(schema.parent.members[i]!); | ||
//schema.members.unshift(schema.parent?.members[i]!); | ||
members.unshift(schema.parent?.members[i]!.node); | ||
} | ||
@@ -60,0 +61,0 @@ } |
208931
0.04%3704
-0.13%