README
ngx-entity-manager
An Angular entity manage.
Installation
Install via npm:
npm install @aegis-techno/ngx-entity-manager --save
Install manually:
- Add
@aegis-techno/ngx-entity-manager
intopackage.json
. - Run
npm install
.
Usage
import {NgxEntity, NgxAbstractEntity, NgxRelation} from '@aegis-techno/ngx-entity-manager';
import {forwardRef} from '@angular/core';
@NgxEntity()
export class MyObject extends NgxAbstractEntity<string> {
public name: string = null;
@NgxRelation(forwardRef(() => MyObjectChild))
public oneChild: MyObjectChild= null;
@NgxRelation(forwardRef(() => MyObjectChild), true)
public arrayChild: Array<MyObjectChild2> = null;
@NgxRelation(forwardRef(() => LegacyObject), true)
public arrayLegacyChild: Array<LegacyObject> = null;
}
@NgxEntity()
export class MyObjectChild extends NgxAbstractEntity<string> {
public name = null
}
export class MyObjectChild2 extends MyObjectChild {
public name2 = null
}
export class LegacyObject {
public name = null
}
API
Methods
fromObject(object: any): NgxAbstractEntity<T>
: Return instance of object and save it.findById(id: any): NgxAbstractEntity<T>
: Return instance of object if a saved item has this id.toJson(deep?: boolean): any
: Return a object with date of instance.
Example
const myObject = MyObject.fromObject({
id: '1',
name: 'myObjectName',
oneChild: {
id: '1',
name: 'myObjectChildName'
},
arrayChild: [
{
id: '2',
name: 'myObjectChildName',
name2: 'myObjectChild2Name'
},
{
id: '3',
name: 'myObjectChildName',
name2: 'myObjectChild2Name'
}
],
arrayLegacyChild: [
{
name: 'myLegacyObject',
}
]
});
const myObjectChild = MyObjectChild.findById<MyObjectChild>('1');
const myObjectChild2 = MyObjectChild2.findById<MyObjectChild2>('2');