2018-12-30 17:12:21 +00:00
|
|
|
tk-serializer
|
|
|
|
=============
|
|
|
|
|
|
|
|
About
|
|
|
|
-----
|
|
|
|
|
|
|
|
This library offers a generic serialization system for Javascript.
|
|
|
|
|
|
|
|
Deep objects state may be serialized to a string, and reconstructed back.
|
|
|
|
|
|
|
|
Class instances are reconstructed properly, as long as they are in the provided namespace. Circular references are handled.
|
|
|
|
|
|
|
|
Usage example
|
|
|
|
-------------
|
|
|
|
|
|
|
|
```typescript
|
|
|
|
const namespace = {
|
|
|
|
Class1,
|
|
|
|
Class2
|
|
|
|
};
|
|
|
|
const obj = {
|
|
|
|
a: [1, "a", new Class1()],
|
|
|
|
b: new Class2("x"),
|
|
|
|
c: new Class3()
|
|
|
|
};
|
|
|
|
|
|
|
|
let 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
|
|
|
|
let state: string = serializer.serialize(obj);
|
|
|
|
|
|
|
|
// Reconstruct the object back (*c* will be undefined)
|
|
|
|
let nobj = serializer.unserialize(state);
|
|
|
|
```
|