Skip to content
This repository has been archived by the owner on May 4, 2023. It is now read-only.

Latest commit

 

History

History
101 lines (68 loc) · 2.48 KB

README.md

File metadata and controls

101 lines (68 loc) · 2.48 KB

JavaScript Object Graphs with Typescript

Build Status Coverage Status

This Typescript module implements JSOG format. It is able to instantiante typescript objects during deserialization.

Usage

Installation

npm install --save jsog-typescript

Enable typescript experimentalDecorator and emitDecoratorMetadata compiler options.

Minimal tslint.json:

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
    }
}

General

Generate a new instance of the service. See Integration for integration to some popular frameworks.

import { jsogService } from 'jsog-typescript'

const jsog = new JsogService();

Use it to serialize and deserialize JavaScript Objects.

jsog.serialize(javaScriptObject);
jsog.deserialize(jsogObjectGraph);

Instatiate Typescript Objects

Description how to instatiate Typescript objects to provide convinent methods and use the typeof operator.

Instantiate the root object or a list of rootObjects:

jsog.deserializeObject(jsogObjectGraph, ExampleClass);
jsog.deserializeArray(jsogObjectArray, ExampleClass);

To instantiate references somewhere in the tree decorate class properties to instantiate with @JsonProperty() and properties with Lists containing objects of type ExamplecClass use @JsonProperty(ExampleClass).

Integration

Angular 4

Provide JsogService as an Angular 4 Service which can be injected into your Components/Services.

import { NgModule } from '@angular/core';
import { JsogService } from 'jsog-typescript';

@NgModule({
    providers: [
        JsogService
    ]
)}

AngularJs

Register JsogService as an Angular Service

import { module } from 'angular';
import { JsogService } from 'jsog-typescript';

module.service('JsogService', JsogService)

Developer Guide

System dependencies

Author

License

This software is provided under the MIT license

This software uses code and ideas from: