@syslogic/graph-serializer
v0.5.1
Published
Typescript serializer for converting betweet JSON data and Object graphs
Downloads
413
Readme
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
Commands
yarn build
- builds new files.yarn watch
- Watches for changes and builds on change.npm test
- Runs tests