UNPKG

yalento

Version:

An awesome integration of Google Firebase for Angular and Node

107 lines (106 loc) 2.63 kB
import { BehaviorSubject } from 'rxjs'; import { IEntity, Repository } from '../persistence/Repository'; import { IPageEventSort, IQueryPaginatorDefaults, QueryPaginator } from './query/QueryPaginator'; export interface IStatement { where?: string; orderBy?: string; limit?: number; offset?: number; params?: any[]; excludeWhereIamOwner?: boolean; includeWhereIamOwner?: boolean; } export interface IStatementOne { where?: string; uuid?: string; params?: any[]; } export interface IQueryCallbackChanges { count?: number; results?: any[]; resultsAll?: any[]; pageSize?: number; pageIndex?: number; pageSort?: IPageEventSort; dataAdded?: boolean; geoLocationChanged?: boolean; dataRemoved?: boolean; dataUpdated?: boolean; selectSqlStatement?: boolean; } /** * INTERNAL USE ONLY */ export declare class QuerySubject<T> { private repository; private readonly paginator; private readonly queryCallbackChanges$; private readonly _sql; private readonly _paginatorDefaults; private _lastExecStatement; private _subscriptions; private _repositoryLastCount; private uuid; /** * * @param repository * @param sql * @param paginatorDefaults */ constructor(repository: Repository<T>, sql?: IStatement, paginatorDefaults?: IQueryPaginatorDefaults); unsubscribe(): void; getSql(): IStatement | undefined; getSqlSelectParsed(sql?: IStatement): string; /** * * @param sql * @param skipConnectors * @param skipGeolocation */ execStatement(sql?: IStatement, skipConnectors?: boolean, skipGeolocation?: boolean): Promise<IEntity<T>[]>; /** * get behaviour subject */ getPaginator(): QueryPaginator<T>; /** * update query callback changes */ updateQueryCallbackChanges(changes: IQueryCallbackChanges): void; /** * get query callback changes observer */ getQueryCallbackChanges(): BehaviorSubject<IQueryCallbackChanges>; /** * */ getRepository(): Repository<T>; /** * */ private getUserUuid; /** * * @param sql */ private getEvaluatedSqlParams; /** * * @param paginatorDefaults * @param sql */ private setPaginatorDefaults; /** * observe and re-execute statement on any changes * @param sql */ private observeStatement; /** * observe queryCallbackChanges$ */ private observeQueryCallbackChanges; /** * * @param statement */ private replaceStatement; }