0.0.1 • Published 6 years ago

@ao-framework/serializer v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

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 = "Something@gmail.com"

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!