yalento
Version:
An awesome integration of Google Firebase for Angular and Node
107 lines (106 loc) • 2.63 kB
TypeScript
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;
}