Skip to main content
Home
This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
58%
Published
a year ago (0.3.5)
Package root>serializer.test.ts
import { assertEquals, assertInstanceOf } from "jsr:@std/assert@^0.222.1"; import { Serializer, toDeserialize, toSerialize } from "./mod.ts"; Deno.test("serializer, toSerialize, toDeserialize", () => { class TestUser { #_age = 0; constructor(public name: string) { this.#_age = 0; } setAge(age: number) { this.#_age = age; } getAge() { return this.#_age; } [toSerialize]() { return { name: this.name, age: this.#_age, }; } [toDeserialize]( value: { name: string; age: number; }, ) { this.name = value.name; this.#_age = value.age; } } const serializer = new Serializer({ classes: { TestUser } }); { const user = new TestUser("wan2land"); user.setAge(20); assertEquals( serializer.serialize(user), 'TestUser{"name":"wan2land","age":20}', ); } { const user = serializer.deserialize<TestUser>( 'TestUser{"name":"wan2land","age":20}', ); assertInstanceOf(user, TestUser); assertEquals(user.name, "wan2land"); assertEquals(user.getAge(), 20); } }); Deno.test("serializer, alias class names", () => { class TestUser { constructor(public name: string) { } } const serializer = new Serializer({ classes: { AliasedTestUser: TestUser } }); { const user = new TestUser("wan2land"); assertEquals( serializer.serialize(user), 'AliasedTestUser{"name":"wan2land"}', ); } { const user = serializer.deserialize<TestUser>( 'AliasedTestUser{"name":"wan2land"}', ); assertInstanceOf(user, TestUser); assertEquals(user.name, "wan2land"); } });