UNPKG

blow-data-service

Version:

Observable data service for Blow.

55 lines (54 loc) 2.06 kB
import { Query } from 'blow-query'; import { Observable } from 'rxjs'; import * as mongodb from 'mongodb'; import { DataConnector } from './DataConnector'; import { Entity } from '../Entity'; export interface ConnectOptions { uriDecodeAuth: boolean; db: Object; server: Object; replSet: Object; mongos: Object; } export declare class MongoClient { static connect(url: string, options?: ConnectOptions): Observable<Db>; } export declare class Db { protected _db: mongodb.Db; constructor(db: mongodb.Db); collection<T>(name: string): Collection<T>; delete(): Observable<{}>; close(): Observable<boolean>; } export declare class Collection<T> { protected _collection: mongodb.Collection; constructor(collection: mongodb.Collection); find(query?: any): Observable<T>; count(query?: any): Observable<number>; delete(query?: any): Observable<number>; insert(doc: any): Observable<T>; update(query: any, doc: any, options?: any): Observable<T>; } export declare class MongoDBConnector extends DataConnector { protected _db: Db; protected _buildQueryWhereForId(id: string): { [key: string]: any; }; protected _normalizeId(value: any): any; protected _prepareQueryWhere(queryWhere: { [key: string]: any; }): { [key: string]: any; }; protected _collection<T>(collectionName: string): Collection<T>; connect(): Observable<MongoDBConnector>; disconnect(): Observable<MongoDBConnector>; destroyDb(): Observable<MongoDBConnector>; find<T>(collectionName: string, query?: Query): Observable<T>; count(collectionName: string, query?: Query): Observable<number>; delete(collectionName: string, query?: Query): Observable<number>; deleteById(collectionName: string, id: string): Observable<boolean>; get<T>(collectionName: string, id: string): Observable<T>; save<T>(collectionName: string, doc: Entity): Observable<T>; updateAttributes<T>(collectionName: string, id: string, attributes: Entity): Observable<T>; }