UNPKG

jaydata-dynamic-metadata

Version:

OData v4 metadata to JayData context util

177 lines (160 loc) 6.42 kB
declare module $data{ class Geography{} class GeographyLineString{} class GeographyPolygon{} class GeographyMultiPoint{} class GeographyMultiPolygon{} class GeographyMultiLineString{} class GeographyCollection{} class Geometry{} class GeometryLineString{} class GeometryPolygon{} class GeometryMultiPoint{} class GeometryMultiPolygon{} class GeometryMultiLineString{} class GeometryCollection{} const enum EntityState{ Detached = 0, Unchanged = 10, Added = 20, Modified = 30, Deleted = 40 } interface MemberDefinition{ name: string; type: any; dataType: any; elementType: any; originalType: any; kind: string; classMember: boolean; set: (value:any) => void; get: () => any; value: any; initialValue: any; method: Function; enumerable: boolean; configurable: boolean; key: boolean; computed: boolean; storeOnObject: boolean; monitorChanges: boolean; } interface Event{ attach(eventHandler: (sender: any, event: any) => void ): void; detach(eventHandler: () => void ): void; fire(e: any, sender: any): void; } class Base<T>{ constructor(); getType: () => typeof Base; static addProperty(name:string, getterOrType:string | Function, setterOrGetter?:Function, setter?:Function): void; static addMember(name:string, definition:any, isClassMember?:boolean): void; static describeField(name:string, definition:any): void; static hasMetadata(key:string, property?:string): boolean; static getAllMetadata(property?:string): any; static getMetadata(key:string, property?:string): any; static setMetadata(key:string, value:any, property?:string): void; } class Enum extends Base<Enum>{ static extend(name:string, instanceDefinition:any, classDefinition?:any): Base<Enum>; } function createEnum(name:string, enumType:any, enumDefinition?:any): Base<Enum>; class Entity extends Base<Entity>{ static extend(name:string, instanceDefinition:any, classDefinition?:any): Base<Entity>; entityState: EntityState; changedProperties: MemberDefinition[]; propertyChanging: Event; propertyChanged: Event; propertyValidationError: Event; isValid: boolean; } class EntitySet<Ttype extends typeof Entity, T extends Entity> extends Queryable<T>{ add(item: T): T; add(initData: {}): T; attach(item: T): void; attach(item: {}): void; attachOrGet(item: T): T; attachOrGet(item: {}): T; detach(item: T): void; detach(item: {}): void; remove(item: T): void; remove(item: {}): void; elementType: Ttype; } class EntityContext extends Base<EntityContext>{ constructor(config?: any); onReady(): Promise<EntityContext>; saveChanges(): Promise<number>; stateManager: {reset: Function}; static extend(name:string, instanceDefinition:any, classDefinition?:any): Base<EntityContext>; } class Queryable<T extends Entity | Edm.Primitive>{ filter(predicate: (it: T) => boolean, thisArg?: any): Queryable<T>; filter(predicate: string, thisArg?: any): Queryable<T>; map(projection: (it: T) => any): Queryable<any>; map(projection: string): Queryable<any>; orderBy(predicate: (it: T) => void): Queryable<T>; orderBy(predicate: string): Queryable<T>; orderByDescending(predicate: (it: T) => void): Queryable<T>; orderByDescending(predicate: string): Queryable<T>; include(selector: string): Queryable<T>; skip(amount: number): Queryable<T>; take(amount: number): Queryable<T>; forEach(handler: (it: T) => void): Promise<T>; length(): Promise<number>; toArray(): Promise<T[]>; single(predicate: (it: T) => boolean, params?: any): Promise<T>; single(predicate: string, params?: any): Promise<T>; first(predicate?: (it: T) => boolean, params?: any): Promise<T>; first(predicate?: string, params?: any): Promise<T>; removeAll(): Promise<number>; count(): Promise<number>; } class ServiceAction{} class ServiceFunction{} function implementation(name:string): typeof Base; } export {$data as $data} declare type JSDate = Date; declare module Edm { type Boolean = boolean; type Binary = Uint8Array; type DateTime = JSDate; type DateTimeOffset = JSDate; type Duration = string; type TimeOfDay = string; type Date = string; type Time = string; type Decimal = string; type Single = number; type Float = number; type Double = number; type Guid = string; type Int16 = number; type Int32 = number; type Int64 = string; type Byte = number; type SByte = number; type String = string; type GeographyPoint = $data.Geography; type GeographyLineString = $data.GeographyLineString; type GeographyPolygon = $data.GeographyPolygon; type GeographyMultiPoint = $data.GeographyMultiPoint; type GeographyMultiPolygon = $data.GeographyMultiPolygon; type GeographyMultiLineString = $data.GeographyMultiLineString; type GeographyCollection = $data.GeographyCollection; type GeometryPoint = $data.Geometry; type GeometryLineString = $data.GeometryLineString; type GeometryPolygon = $data.GeometryPolygon; type GeometryMultiPoint = $data.GeometryMultiPoint; type GeometryMultiPolygon = $data.GeometryMultiPolygon; type GeometryMultiLineString = $data.GeometryMultiLineString; type GeometryCollection = $data.GeometryCollection; type Primitive = Boolean | Binary | Guid | DateTime | DateTimeOffset | Duration | TimeOfDay | Date | Time | Decimal | Single | Float | Double | Int16 | Int32 | Int64 | Byte | SByte | String | GeographyPoint | GeographyLineString | GeographyPolygon | GeographyMultiPoint | GeographyMultiLineString | GeographyMultiPolygon | GeographyCollection | GeometryPoint | GeometryLineString | GeometryPolygon | GeometryMultiPoint | GeometryMultiLineString | GeometryMultiPolygon | GeometryCollection; } export {Edm as Edm}