@ortoo/angular-resource
Version:
Magical CRUD resource management for angular
35 lines (34 loc) • 1.53 kB
TypeScript
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Subject } from 'rxjs/Subject';
import { ArrayEmitter } from './array-emitter.js';
import { Database, Model, Query as IQuery, QueryFunction, QueryList, Resource, SocketFactory } from './types';
export declare class Query<T> extends ArrayEmitter<T> implements IQuery<T> {
$refresh: (force?: boolean) => Promise<Query<T>>;
$promise: Promise<Query<T>>;
$subject: BehaviorSubject<Query<T>>;
$resolvedSubject: Subject<Query<T>>;
$resolved: boolean;
$Model: any;
$serverResults?: Query<T>;
$skip?: number;
$hasNext: boolean;
$hasPrev: boolean;
extend: (obj: any, noSanitize?: boolean, retServer?: boolean) => Promise<Query<T>>;
replace: (qry: any, retServer?: boolean) => Promise<Query<T>>;
get: (...args: any[]) => any;
next: (num?: number) => Promise<Query<T>>;
prev: (num?: number) => Promise<Query<T>>;
chain: (Model: Resource<Model> | QueryFunction, qryFn?: QueryFunction) => IQuery<Model>;
transform: (tmpResults: any[]) => Promise<any[]> | any[];
currentLimit: number;
currentSkip: number;
loading: boolean;
hasNext: boolean;
hasPrev: boolean;
}
export declare class LocalQuery<T> extends Query<T> {
}
export declare class ServerQuery<T> extends Query<T> {
$newData?: (qryId: string, response: any, force?: boolean) => void;
}
export declare function createQueryFactory(socket: SocketFactory): (url: string, rootKey: string, rootKeyPlural: string, db?: Database) => QueryList;