ts-data/projects/poweredsoft/data/src/lib/IDataSource.ts
David Lebee a911f739d8 changes
2019-09-13 10:24:19 -05:00

24 lines
966 B
TypeScript

import { Observable } from "rxjs";
import { ISort, IFilter, IGroup, IAggregate, IQueryExecutionResult, IQueryExecutionGroupResult, IQueryCriteria } from "./models";
import { IResolveCommandModelEvent } from "./IResolveCommandModelEvent";
export interface IDataSource<TModel>
{
resolveCommandModelByName<T extends any>(event: IResolveCommandModelEvent<TModel>) : Observable<T>;
executeCommandByName<TCommand, TResult>(name: string, command: TCommand) : Observable<TResult>;
query<TQuery extends IQueryCriteria>(query: TQuery);
refresh();
resolveIdField<TKeyType extends any>(model: TModel) : TKeyType;
data$: Observable<IQueryExecutionResult<TModel> & IQueryExecutionGroupResult<TModel>>;
loading$: Observable<boolean>;
data: IQueryExecutionResult<TModel> & IQueryExecutionGroupResult<TModel>;
sorts: ISort[];
filters: IFilter[];
groups: IGroup[];
aggregates: IAggregate[];
pageSize: number;
page: number;
}