🚀 DAY 4 OF LAUNCH WEEK: Introducing GitHub Actions Scanning Support.Learn more →
Socket
Book a DemoInstallSign in
Socket

@ao-framework/serializer

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ao-framework/serializer

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

latest
Source
npmnpm
Version
0.0.1
Version published
Maintainers
1
Created
Source


Serializer

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!

"Be Kind and Please Rewind Encrypt Everything"

FAQs

Package last updated on 26 Feb 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts