Skip to content

A TypeScript marshalling and validation library

License

Notifications You must be signed in to change notification settings

horia141/raynor

Repository files navigation

Raynor npm version Build Status Coverage License Dependencies

A TypeScript marshalling and data validation library.

See this article for a tutorial and introduction to Raynor.

We'll add more docs with time, but here's a quick example:

class User {
    @MarshalWith(StringMarshaller)
    name: string;
    @MarshalWith(ArrayOf(NumberMarshaller))
    scoresByDay: number[];

    totalScore(): number {
        return this.scoresByDay.reduce((a,b) => a + b, 0);
    }
}

const um = new (MarshalFrom(User))();
const u = um.extract(JSON.parse('{"name": "Raynor", "scoresByDay": [10, 20, 30]}'));
console.log(u.totalScore()); // Prints 60