UNPKG

hydrate-mongodb

Version:
123 lines (122 loc) 8.15 kB
/// <reference types="rx-core" /> /// <reference types="rx-core-binding" /> /// <reference types="rx-lite" /> /// <reference types="rx-lite-aggregates" /> /// <reference types="rx-lite-backpressure" /> /// <reference types="rx-lite-coincidence" /> /// <reference types="rx-lite-experimental" /> /// <reference types="rx-lite-joinpatterns" /> /// <reference types="rx-lite-time" /> 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<T> { findAll(callback?: ResultCallback<T[]>): FindQuery<T>; findAll(criteria: QueryDocument, callback?: ResultCallback<T[]>): FindQuery<T>; findOne(callback?: ResultCallback<T>): FindOneQuery<T>; findOne(criteria: QueryDocument, callback?: ResultCallback<T>): FindOneQuery<T>; findOneById(id: any, callback?: ResultCallback<T>): FindOneQuery<T>; findOneAndRemove(callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; findOneAndRemove(criteria: QueryDocument, callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; findOneAndUpdate(updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; findOneAndUpdate(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; findOneAndUpsert(updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; findOneAndUpsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; removeAll(callback?: ResultCallback<number>): void; removeAll(criteria: QueryDocument, callback?: ResultCallback<number>): void; removeOne(callback?: ResultCallback<number>): void; removeOne(criteria: QueryDocument, callback?: ResultCallback<number>): void; updateAll(updateDocument: QueryDocument, callback?: ResultCallback<number>): void; updateAll(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<number>): void; updateOne(updateDocument: QueryDocument, callback?: ResultCallback<number>): void; updateOne(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<number>): void; upsert(updateDocument: QueryDocument, callback?: ResultCallback<number>): void; upsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<number>): void; distinct(key: string, callback: ResultCallback<any[]>): void; distinct(key: string, criteria: QueryDocument, callback: ResultCallback<any[]>): void; count(callback?: ResultCallback<number>): CountQuery; count(criteria: QueryDocument, callback?: ResultCallback<number>): CountQuery; } export interface QueryDocument { [name: string]: any; } export interface Query<T> { execute(callback: ResultCallback<any>): void; asPromise(): Promise<T>; } export interface CountQuery extends Query<number> { limit(value: number, callback?: ResultCallback<number>): CountQuery; skip(value: number, callback?: ResultCallback<number>): CountQuery; } export interface FindOneAndRemoveQuery<T> extends Query<T> { sort(field: string, direction: number, callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; sort(fields: [string, number][], callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; fetch(path: string, callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; fetch(paths: string[], callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; lazy(callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; } export interface FindOneAndUpdateQuery<T> extends Query<T> { sort(field: string, direction: number, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; sort(fields: [string, number][], callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; fetch(path: string, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; fetch(paths: string[], callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; returnUpdated(callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; lazy(callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; } export interface FindOneQuery<T> extends Query<T> { fetch(path: string, callback?: ResultCallback<T>): FindOneQuery<T>; fetch(paths: string[], callback?: ResultCallback<T>): FindOneQuery<T>; lazy(callback?: ResultCallback<T>): FindOneQuery<T>; } export interface FindQuery<T> extends Query<T[]> { sort(field: string, direction: number, callback?: ResultCallback<T[]>): FindQuery<T>; sort(fields: [string, number][], callback?: ResultCallback<T[]>): FindQuery<T>; fetch(path: string, callback?: ResultCallback<T[]>): FindQuery<T>; fetch(paths: string[], callback?: ResultCallback<T[]>): FindQuery<T>; limit(value: number, callback?: ResultCallback<T[]>): FindQuery<T>; collation(value: CollationOptions, callback?: ResultCallback<T[]>): FindQuery<T>; skip(value: number, callback?: ResultCallback<T[]>): FindQuery<T>; lazy(callback?: ResultCallback<T[]>): FindQuery<T>; batchSize(value: number): FindQuery<T>; each(iterator: IteratorCallback<T>, callback: Callback): void; eachSeries(iterator: IteratorCallback<T>, callback: Callback): void; asObservable(): Observable<T>; } export declare class QueryBuilderImpl<T> implements QueryBuilder<T> { private _session; private _entityCtr; constructor(session: InternalSession, entityCtr: Constructor<any>); findAll(callback?: ResultCallback<T[]>): FindQuery<T>; findAll(criteria: QueryDocument, callback?: ResultCallback<T[]>): FindQuery<T>; findOne(callback?: ResultCallback<T>): FindOneQuery<T>; findOne(criteria: QueryDocument, callback?: ResultCallback<T>): FindOneQuery<T>; findOneById(id: any, callback?: ResultCallback<T>): FindOneQuery<T>; findOneAndRemove(callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; findOneAndRemove(criteria: QueryDocument, callback?: ResultCallback<T>): FindOneAndRemoveQuery<T>; findOneAndUpdate(updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; findOneAndUpdate(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; findOneAndUpsert(updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; findOneAndUpsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<T>): FindOneAndUpdateQuery<T>; removeAll(callback?: ResultCallback<number>): void; removeAll(criteria: QueryDocument, callback?: ResultCallback<number>): void; removeOne(callback?: ResultCallback<number>): void; removeOne(criteria: QueryDocument, callback?: ResultCallback<number>): void; updateAll(updateDocument: QueryDocument, callback?: ResultCallback<number>): void; updateAll(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<number>): void; updateOne(updateDocument: QueryDocument, callback?: ResultCallback<number>): void; updateOne(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<number>): void; upsert(updateDocument: QueryDocument, callback?: ResultCallback<number>): void; upsert(criteria: QueryDocument, updateDocument: QueryDocument, callback?: ResultCallback<number>): void; distinct(key: string, callback: ResultCallback<any[]>): void; distinct(key: string, criteria: QueryDocument, callback: ResultCallback<any[]>): void; count(callback?: ResultCallback<number>): CountQuery; count(criteria: QueryDocument, callback?: ResultCallback<number>): CountQuery; private _createUpdateQuery(kind, criteriaOrUpdateDocument, updateDocumentOrCallback, callback?); private _createRemoveQuery(kind, criteriaOrCallback?, callback?); private _createFindQuery(kind, criteriaOrCallback?, callback?); private _createQuery(kind); }