/// /// /// /// /// /// /// /// /// import { Callback } from "../core/callback"; import { ResultCallback } from "../core/callback"; import { IteratorCallback } from "../core/callback"; import { InternalSession } from "../session"; import { Constructor } from "../index"; import { Observable } from "rx"; import { CollationOptions } from "../mapping/collationOptions"; export interface QueryBuilder { findAll(callback?: ResultCallback): FindQuery; findAll(criteria: QueryDocument, callback?: ResultCallback): FindQuery; findOne(callback?: ResultCallback): FindOneQuery; findOne(criteria: QueryDocument, callback?: ResultCallback): FindOneQuery; findOneById(id: any, callback?: ResultCallback): FindOneQuery; findOneAndRemove(callback?: ResultCallback): FindOneAndRemoveQuery; findOneAndRemove(criteria: QueryDocument, callback?: ResultCallback): FindOneAndRemoveQuery; findOneAndUpdate(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; findOneAndUpdate(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; findOneAndUpsert(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; findOneAndUpsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; removeAll(callback?: ResultCallback): void; removeAll(criteria: QueryDocument, callback?: ResultCallback): void; removeOne(callback?: ResultCallback): void; removeOne(criteria: QueryDocument, callback?: ResultCallback): void; updateAll(updateDocument: QueryDocument, callback?: ResultCallback): void; updateAll(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void; updateOne(updateDocument: QueryDocument, callback?: ResultCallback): void; updateOne(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void; upsert(updateDocument: QueryDocument, callback?: ResultCallback): void; upsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void; distinct(key: string, callback: ResultCallback): void; distinct(key: string, criteria: QueryDocument, callback: ResultCallback): void; count(callback?: ResultCallback): CountQuery; count(criteria: QueryDocument, callback?: ResultCallback): CountQuery; } export interface QueryDocument { [name: string]: any; } export interface Query { execute(callback: ResultCallback): void; asPromise(): Promise; } export interface CountQuery extends Query { limit(value: number, callback?: ResultCallback): CountQuery; skip(value: number, callback?: ResultCallback): CountQuery; } export interface FindOneAndRemoveQuery extends Query { sort(field: string, direction: number, callback?: ResultCallback): FindOneAndRemoveQuery; sort(fields: [string, number][], callback?: ResultCallback): FindOneAndRemoveQuery; fetch(path: string, callback?: ResultCallback): FindOneAndRemoveQuery; fetch(paths: string[], callback?: ResultCallback): FindOneAndRemoveQuery; lazy(callback?: ResultCallback): FindOneAndRemoveQuery; } export interface FindOneAndUpdateQuery extends Query { sort(field: string, direction: number, callback?: ResultCallback): FindOneAndUpdateQuery; sort(fields: [string, number][], callback?: ResultCallback): FindOneAndUpdateQuery; fetch(path: string, callback?: ResultCallback): FindOneAndUpdateQuery; fetch(paths: string[], callback?: ResultCallback): FindOneAndUpdateQuery; returnUpdated(callback?: ResultCallback): FindOneAndUpdateQuery; lazy(callback?: ResultCallback): FindOneAndUpdateQuery; } export interface FindOneQuery extends Query { fetch(path: string, callback?: ResultCallback): FindOneQuery; fetch(paths: string[], callback?: ResultCallback): FindOneQuery; lazy(callback?: ResultCallback): FindOneQuery; } export interface FindQuery extends Query { sort(field: string, direction: number, callback?: ResultCallback): FindQuery; sort(fields: [string, number][], callback?: ResultCallback): FindQuery; fetch(path: string, callback?: ResultCallback): FindQuery; fetch(paths: string[], callback?: ResultCallback): FindQuery; limit(value: number, callback?: ResultCallback): FindQuery; collation(value: CollationOptions, callback?: ResultCallback): FindQuery; skip(value: number, callback?: ResultCallback): FindQuery; lazy(callback?: ResultCallback): FindQuery; batchSize(value: number): FindQuery; each(iterator: IteratorCallback, callback: Callback): void; eachSeries(iterator: IteratorCallback, callback: Callback): void; asObservable(): Observable; } export declare class QueryBuilderImpl implements QueryBuilder { private _session; private _entityCtr; constructor(session: InternalSession, entityCtr: Constructor); findAll(callback?: ResultCallback): FindQuery; findAll(criteria: QueryDocument, callback?: ResultCallback): FindQuery; findOne(callback?: ResultCallback): FindOneQuery; findOne(criteria: QueryDocument, callback?: ResultCallback): FindOneQuery; findOneById(id: any, callback?: ResultCallback): FindOneQuery; findOneAndRemove(callback?: ResultCallback): FindOneAndRemoveQuery; findOneAndRemove(criteria: QueryDocument, callback?: ResultCallback): FindOneAndRemoveQuery; findOneAndUpdate(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; findOneAndUpdate(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; findOneAndUpsert(updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; findOneAndUpsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): FindOneAndUpdateQuery; removeAll(callback?: ResultCallback): void; removeAll(criteria: QueryDocument, callback?: ResultCallback): void; removeOne(callback?: ResultCallback): void; removeOne(criteria: QueryDocument, callback?: ResultCallback): void; updateAll(updateDocument: QueryDocument, callback?: ResultCallback): void; updateAll(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void; updateOne(updateDocument: QueryDocument, callback?: ResultCallback): void; updateOne(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void; upsert(updateDocument: QueryDocument, callback?: ResultCallback): void; upsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback): void; distinct(key: string, callback: ResultCallback): void; distinct(key: string, criteria: QueryDocument, callback: ResultCallback): void; count(callback?: ResultCallback): CountQuery; count(criteria: QueryDocument, callback?: ResultCallback): CountQuery; private _createUpdateQuery(kind, criteriaOrUpdateDocument, updateDocumentOrCallback, callback?); private _createRemoveQuery(kind, criteriaOrCallback?, callback?); private _createFindQuery(kind, criteriaOrCallback?, callback?); private _createQuery(kind); }