50 lines
1,021 B
Markdown
50 lines
1,021 B
Markdown
|
## Import
|
||
|
|
||
|
In deno:
|
||
|
|
||
|
```typescript
|
||
|
import { Serializer } from "https://code.thunderk.net/typescript/serializer/raw/branch/master/mod.ts";
|
||
|
```
|
||
|
|
||
|
## Use
|
||
|
|
||
|
Suppose you have 2 classes Class1 and Class2, whose instances you want to
|
||
|
serialize:
|
||
|
|
||
|
```typescript
|
||
|
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
|
||
|
```
|