1.7 KiB
1.7 KiB
typescript/serializer
About
This library offers a generic serialization system for Javascript.
Deep objects state may be serialized to a string, and reconstructed back.
Supported data types include:
- Primitive types (number, bool, string...)
- Set and Map standard objects
- Class instances, as long as the class list is exhaustively provided to the serializer
Be warned that the resulting serialized value may be quite large and uncompressed.
Import
In deno:
import { Serializer } from "https://js.thunderk.net/serializer/mod.ts";
In browser:
<script type="module">
import { Serializer } from "https://js.thunderk.net/serializer/mod.js";
</script>
Use
Suppose you have 2 classes Class1 and Class2, whose instances you want to serialize:
Class1 { /* [...] */ }
Class2 { /* [...] */ }
// Here is the example object we want to serialize to a string
const obj = {
a: [1, "a", new Class1()],
b: new Class2("x"),
c: new Class3(),
};
// We prepare the serializer, providing the class namespace
const namespace = {
Class1,
Class2,
};
const serializer = new Serializer(namespace);
// Optionally, some class instances may be ignored (they will be replaced by *undefined*)
serializer.addIgnoredClass(Class3);
// Serialize the object to a string
const state = serializer.serialize(obj);
// Reconstruct the object back
const nobj = serializer.unserialize(state);
console.log(nobj.a[0]);
// output: 1
console.log(nobj.b instance of Class2);
// output: true
console.log(nobj.c);
// output: undefined