Neurophysiologically Pseudoscientific Manatee

    ts-serialize
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.2 • Public • Published

    Build Status npm versionTest Coverage

    ts-serialize

    Serialization tool using Typescript decorators and reflect-metadata.

    Usage

    Example with two classes :

    import {Serializable, Serialize, SerializeOpt, SerializeArray} from "ts-serialize"
     
    class Role extends Serializable {
     
        // Serialize knows the primitive types
        // So it can automatically validate and convert it
        @Serialize()
        public id : string;
        
        @Serialize()
        public order : number;
    }
    
    class User extends Serializable {
     
        // You can change the property name 
        // (`id` for the class, `identifier` for the json)
        @Serialize('identifier')
        public id : string;
     
        @Serialize()
        private age : number;
        
        @Serialize()
        public language : string;
     
        // For optionals, you need to use a special decorator
        @SerializeOpt( String )
        public name : Optional< string >;
     
        // For arrays, you need to use a special decorator
        @SerializeArray( User )
        public children : User[];
     
        // Composition works naturally
        @Serialize()
        public role : Role;
        
        // You can apply your own transformers
        @Serialize(() => Math.random() * 1000)
        public random : number;
    }
    

    Now, validate you json using one of those and get either errors or your serialized object/array

    static fromString< T >(str: string): Either< Error[], T >;
     
    static fromStringAsArray< T >(str: string): Either< Error[], Array< T > >;
     
    static fromJsObject< T >(jsObject: JsObject, jsonPath: string[] = [], classPath: string[] = []): Either< Error[], T >;
     
    static fromJsArray< T >(jsArray: JsArray, jsonPath: string[] = [], classPath: string[] = []): Either< Error[], T[] >;
    

    And convert your instances to json using :

    const user = new User();
    console.log(user.toJson());
    

    Install

    npm i ts-serialize

    DownloadsWeekly Downloads

    2

    Version

    1.3.2

    License

    MIT

    Last publish

    Collaborators

    • cke