
Product
A Fresh Look for the Socket Dashboard
Weβve redesigned the Socket dashboard with simpler navigation, less visual clutter, and a cleaner UI that highlights what really matters.
ββ βββββββ ββββββ βββ ββ βββββ βββββββ
ββ ββ ββ ββ ββββ ββ ββ ββ ββ
ββ βββββββ ββ ββ ββ ββ ββ βββββ βββββββ βββββββ
ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ
βββββ βββββββ ββββββ ββ ββββ ββ ββ βββββββ
AssemblyScript - v1.0.0-alpha.4
npm install json-as@1.0.0-alpha.3
Add the --transform
to your asc
command (e.g. in package.json)
--transform json-as
Alternatively, add it to your asconfig.json
{
// ...
"options": {
"transform": ["json-as/transform"]
}
}
If you'd like to see the code that the transform generates, run with JSON_DEBUG=true
import { JSON } from "json-as";
@json
class Vec3 {
x: f32 = 0.0;
y: f32 = 0.0;
z: f32 = 0.0;
}
@json
class Player {
@alias("first name")
firstName!: string;
lastName!: string;
lastActive!: i32[];
// Drop in a code block, function, or expression that evaluates to a boolean
@omitif((self: Player) => self.age < 18)
age!: i32;
@omitnull()
pos!: Vec3 | null;
isVerified!: boolean;
}
const player: Player = {
firstName: "Jairus",
lastName: "Tanaka",
lastActive: [2, 7, 2025],
age: 18,
pos: {
x: 3.4,
y: 1.2,
z: 8.3
},
isVerified: true
};
const serialized = JSON.stringify<Player>(player);
const parsed = JSON.parse<Player>(serialized);
console.log("Serialized: " + serialized);
console.log("Parsed: " + JSON.stringify(parsed));
Classes can even have inheritance. Here's a nasty example
@json
class Base {}
@json
class Vec1 extends Base {
x: f32 = 1.0;
}
@json
class Vec2 extends Vec1 {
y: f32 = 2.0;
}
@json
class Vec3 extends Vec2 {
z: f32 = 3.0;
}
const arr: Base[] = [
new Vec1(),
new Vec2(),
new Vec3()
];
const serialized = JSON.stringify(arr);
// [{"x":1.0},{"x":1.0,"y":2.0},{"y":2.0,"x":1.0,"z":3.0}]
const parsed = JSON.parse<Base[]>(serialized);
You can also add it to your asconfig.json
{
// ...
"options": {
"transform": ["json-as/transform"]
}
}
If you use this project in your codebase, consider dropping a star. I would really appreciate it!
This project is distributed under an open source license. You can view the full license using the following link: License
Please send all issues to GitHub Issues and to converse, please send me an email at me@jairus.dev
2025-02-13 - 1.0.0-alpha.4
Box<T>
-wrapped primitive typesbs.proposeSize()
should increment stackSize
by size
instead of setting itbs.buffer
bs
moduleJSON.Memory.shrink()
to shrink memory in bs
nextPowerOf2(size + 64)
for less reallocationsBox<T>
bs.stackSize
FAQs
The only JSON library you'll need for AssemblyScript. SIMD enabled
The npm package json-as receives a total of 2,275 weekly downloads. As such, json-as popularity was classified as popular.
We found that json-as demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Weβve redesigned the Socket dashboard with simpler navigation, less visual clutter, and a cleaner UI that highlights what really matters.
Industry Insights
Terry OβDaniel, Head of Security at Amplitude, shares insights on building high-impact security teams, aligning with engineering, and why AI gives defenders a fighting chance.
Security News
MCP spec updated with structured tool output, stronger OAuth 2.1 security, resource indicators, and protocol cleanups for safer, more reliable AI workflows.