Skip to content

Latest commit

 

History

History
76 lines (54 loc) · 2.2 KB

README.md

File metadata and controls

76 lines (54 loc) · 2.2 KB

furystack-core

Greenkeeper badge

Build Status codecov Codacy Badge

FuryStack framework, core package.

Model declaration with @PrimaryKey, @Property and @ForeignKey decorators:

class RefExample {
    @PrimaryKey
    public Id;

    @Property
    public Value: string;
}

class MyModel {
    @PrimaryKey
    public Id: number;

    @Property
    public MyPropertyA: string;

    @Property
    public MyPropertyB: string;

    @ForeignKey(RefExample, 'RefExample')
    public RefExampleId: number;
    public RefExample: RefExample;
}

Accessing model metadata via Global ModelDescriptorStore, usage:

const descriptor = ModelDescriptorStore.GetDescriptor(MyModel);
/*

descriptor.Object = {constructor: class MyModel { … }}

descriptor.Entries = [
  PrimaryKeyDescriptorEntry {PrimaryKey: "Id"}
  ODataPropertyDesrciptorEntry {PropertyName: "MyPropertyA", EdmType: 0}
  ODataPropertyDesrciptorEntry {PropertyName: "MyPropertyB", EdmType: 0}
  ForeignKeyDescriptorEntry {ForeignKeyField: "RefExample", ReferenceName: "RefExample"}
]

descriptor..PrimaryKey = PrimaryKeyDescriptorEntry {PrimaryKey: "Id"}

descriptor.Properties = [
  ODataPropertyDesrciptorEntry {PropertyName: "MyPropertyA", EdmType: 0}
  ODataPropertyDesrciptorEntry {PropertyName: "MyPropertyB", EdmType: 0}
]

descriptor.ForeignKeys = [
  ForeignKeyDescriptorEntry {ForeignKeyField: "RefExample", ReferenceName: "RefExample"}
]

*/

Setup and endpoint with the EndpointBuilder class:

    const builder = new EndpointBuilder('api');

    builder.EntityType(MyModel);
    builder.EntityType(RefExample);

    builder.EntitySet(MyModel, 'mymodels');