Skip to content

Instantly share code, notes, and snippets.

@YonathanMeguira
Created August 16, 2018 11:42
Show Gist options
  • Save YonathanMeguira/8c13a83858db22e9ad680ab1c2d6346c to your computer and use it in GitHub Desktop.
Save YonathanMeguira/8c13a83858db22e9ad680ab1c2d6346c to your computer and use it in GitHub Desktop.
Query Entity class
selectAll(options: {
asObject: true;
filterBy?: SelectOptions<E>['filterBy'];
limitTo?: number;
sortBy?: undefined;
sortByOrder?: undefined;
}): Observable<HashMap<E>>;
selectAll(options: {
filterBy: SelectOptions<E>['filterBy'];
limitTo?: number;
sortBy?: SortBy<E>;
sortByOrder?: Order;
}): Observable<E[]>;
selectAll(options: {
asObject: true;
limitTo?: number;
sortBy?: undefined;
sortByOrder?: undefined;
}): Observable<HashMap<E>>;
selectAll(options: {
limitTo?: number;
sortBy?: SortBy<E>;
sortByOrder?: Order;
}): Observable<E[]>;
selectAll(options: {
asObject: false;
filterBy?: SelectOptions<E>['filterBy'];
limitTo?: number;
sortBy?: SortBy<E>;
sortByOrder?: Order;
}): Observable<E[]>;
selectAll(): Observable<E[]>;
/**
* Get the entire store's entity collection.
*
* @example
* this.store.getAll();
*/
getAll(options: {
asObject: true;
filterBy?: SelectOptions<E>['filterBy'];
limitTo?: number;
}): HashMap<E>;
getAll(options: {
filterBy: SelectOptions<E>['filterBy'];
limitTo?: number;
}): E[];
getAll(options: {
asObject: true;
limitTo?: number;
}): HashMap<E>;
getAll(options: {
limitTo?: number;
}): E[];
getAll(options: {
asObject: false;
filterBy?: SelectOptions<E>['filterBy'];
limitTo?: number;
}): E[];
getAll(): E[];
/**
* Select multiple entities from the store.
*
* @example
* this.store.selectMany([1,2]);
*/
selectMany(ids: ID[], options?: {
filterUndefined?: boolean;
}): Observable<E[]>;
/**
* Select an entity or a slice of an entity.
*
* @example
* this.pagesStore.selectEntity(1)
* this.pagesStore.selectEntity(1, entity => entity.config.date)
*
*/
selectEntity<R>(id: ID): Observable<E>;
selectEntity<R>(id: ID, project: (entity: E) => R): Observable<R>;
/**
* Get an entity by id
*
* @example
* this.store.getEntity(1);
*/
getEntity(id: ID): E;
/**
* Select the active entity's id.
*/
selectActiveId(): Observable<ID>;
/**
* Get the active id
*/
getActiveId(): ID;
/**
* Select the active entity.
*/
selectActive<R>(): Observable<E>;
selectActive<R>(project: (entity: E) => R): Observable<R>;
/**
* Get the active entity.
*/
getActive(): E;
/**
* Select the store's entity collection length.
*/
selectCount(predicate?: (entity: E) => boolean): Observable<number>;
/**
* Get the store's entity collection length.
*/
getCount(predicate?: (entity: E) => boolean): number;
/**
* Select the store's loading state.
*/
selectLoading(): Observable<boolean>;
/**
* Select the store's error state.
*/
selectError(): Observable<any>;
/**
* Returns whether entity exists.
*/
hasEntity(id: ID): boolean;
hasEntity(project: (entity: E) => boolean): boolean;
isEmpty(): boolean;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment