@ao-framework/serializer
v0.0.1
Published
The serializer is a library used to convert an instance of anything to a string and a string to an instance of anything. It does so in such a way as to where all of the pointer references remain intact. It allows for a table of constructors to be presente
Downloads
7
Readme
The serializer is a library used to convert an instance of anything to a string and a string to an instance of anything. It does so in such a way as to where all of the pointer references remain intact. It allows for a table of constructors to be presented so that context, on deserialization, could be remembered or changed. It’s an appropriate tool for cloning instances with deeply nested structures. However, be advised serializing state to disk without encrypting and signing is a dangerous practice that should be avoided at all cost.
Import the library
import Serializer from "@ao-framework/serializer"
Lets say we have a model
namespace Model {
export class User {
public self: User;
public name: string;
public email: string;
}
export class Note {
public title: string;
public content: string;
}
}
Set up context
let serializer = new Serializer(Model, "name-of-context")
Work with your models
let user = new User();
user.self = user;
user.name = "Something";
user.email = "[email protected]"
Serialize
let userString = serializer.down(user);
De-serialize
let newUser = serializer.up(userString);
Did it work?
console.log(newUser.self === newUser) //outputs: true
Security Considerations
Serializing state down to a string and reviving it to its original state without validation raises strong security concerns. Encrypt and sign everything!