ng-rds
TypeScript icon, indicating that this package has built-in type declarations

0.2.4 • Public • Published

ng-rds

This is a work in progress

This package tries to easily store relational data on your website. You can retrieve the stored data as an observable (also static) that will automatically push immutable changes when the concerning data has changed.

Install:

npm install ng-rds --save

Documentation:

wiki

Feedback is very much appreciated!

Example:

Lets say we are writing an application where we have multiple projects that can contain multiple tasks.

Simply add the items:

let projectRds = rdsService.use('Project');
 
projectRds.add([
    {id: 1, name: 'project1', random: 987, tasks: [
        {id: 1, name: 'task1', random: 31},
        {id: 2, name: 'task2', random: 55}
    ]},
    {id: 2, name: 'project2', random: 6854, tasks: [
        {id: 3, name: 'task3', random: 21},
    ]},
    {id: 3, name: 'project3', random: 65},
]);

Because of the way the package stores the data we are now able to retrieve the data as an observable:

projectRds.get().subscribe((projects: Project[]) => console.log(projects));

Every time a change will be made to the stored data the observable will check if its concerning data needs to be updated and will push all the changed objects (immutable).

To request the projects with the related tasks we can join them back:

projectRds
    .join('Task')
    .get()
    .subscribe((projects: Project[]) => console.log(projects));

We are also able to make more complicated statements:

projectRds
    .where('random', '>', 2)
    .where((callback: WhereCallback) => callback
        .whereHas('Task', (cb: WhereHasCallback) => cb
            .where('random', '>', 32)))
        .orWhere('name', '=', 'project2')
    .get().subscribe((projects: Project[]) => {
        console.log(projects);
    });

For all the available functionality and how to setup this package properly check the wiki

All feedback is appreciated!

License

MIT © Jeroen Grasdijk

Readme

Keywords

Package Sidebar

Install

npm i ng-rds

Weekly Downloads

3

Version

0.2.4

License

MIT

Last publish

Collaborators

  • jgdijk