Skip to content
Graph Serializer
TypeScript JavaScript
Branch: develop
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
src
test
.drone.yml
.gitignore
.npmignore
LICENSE
README.md
docker-compose.yml
gulpfile.js
package.json
tsconfig.json
yarn.lock

README.md

graph-serializer

Graph serializer is a lightweight library for converting JSON data structures to typed objects usable in typescript. Benefits include better type checking in your IDE, better type safety, and standardized date conversion. Primary use case is for easy integration of RESTful services and typescript.

Installation

Add graph-serializer to your dependencies:

npm i --save @syslogic/graph-serializer

Usage

Graph-serializer provides an annotation which you can use in your typescrpt entities. You can use the @serializable to specify which properties need to be (de)serialized.

The serialize and deserialize functions can then be used with the entity

Basic usage

import {serializable, deserialize, serialize} from "@syslogic/graph-serializer"

class Foo {
    @serializable()
    public thisWillBeSerialized: string = 'test';
}

let fooObj = deserialize(Foo, {thisWillBeSerialized: 'bar'}); // fooOjb instanceof Foo === true
let fooGraph = serialize(new Foo()); //  fooGraph = {thisWillBeSerialized: 'bar'}

Advanced

There are a few serializer parameters to seraialize all sorts of serializers. Check the test directory for more examples. Features include:

  • Proper Date deserialization
  • Nested serialization
  • Serialize and deserialize including subclasses (class hierarchy)
  • Arrays, multilevel arrays
  • Object maps / Hash maps
  • Union types
  • Polymorphic arrays
You can’t perform that action at this time.