furystack-core

FuryStack framework, Core package

Usage no npm install needed!

<script type="module">
  import furystackCore from 'https://cdn.skypack.dev/furystack-core';
</script>

README

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');