UNPKG

ngx-dexie-observable

Version:
157 lines (156 loc) 5.36 kB
import { Observable } from 'rxjs'; import { Dexie } from 'dexie'; import { DatabaseChange } from './dexie.extends'; import { DexieDatabase } from './dexie.database'; export declare class DexieService<T extends object = any> { protected db: DexieDatabase; constructor(db: DexieDatabase); /** * Adds the entry ```object``` to the dexie table ```table```. * Returns a promise which when resolved gives the key of the object added, when rejected gives the error that occured. * * @param table table name * @param object object to add */ addOne<TKey extends keyof T>(table: TKey, object: T[TKey]): Observable<any>; /** * Adds multiple ```objects``` to the dexie table ```table``` * Returns a promise which works similar to Dexie ```bulkAdd()``` * * @param table table name * @param objects objects to add */ addMultiple<TKey extends keyof T>(table: TKey, objects: T[TKey][]): Observable<any>; /** * Returns a promise which when resolved gives the number of objects in the table ```table``` * * @param table table name */ count<TKey extends keyof T>(table: TKey): Observable<number>; /** * Works similar to Dexie ```put()``` * * @param table table name * @param object * @param key */ addOrUpdateOne<TKey extends keyof T>(table: TKey, object: T[TKey], key?: any): Observable<any>; /** * Works similar to Dexie ```bulkPut()``` * * @param table table name * @param objects * @param keys */ addOrUpdateMultiple<TKey extends keyof T>(table: TKey, objects: T[TKey][], keys?: any): Observable<any>; /** * Works similar to Dexie ```delete()``` * * @param table table name * @param primaryKey */ deleteOne<TKey extends keyof T>(table: TKey, primaryKey: any): Observable<void>; /** * Works similar to Dexie ```bulkDelete()``` * * @param table table name * @param primaryKeys */ deleteMultiple<TKey extends keyof T>(table: TKey, primaryKeys: any[]): Observable<void>; /** * Works similar to Dexie ```clear()``` * * @param table table name */ clearAll<TKey extends keyof T>(table: TKey): Observable<void>; /** * Works similar to Dexie ```each()``` * * @param table table name * @param callback */ operateOnEach<TKey extends keyof T>(table: TKey, callback: (item: T[TKey], idbCursor: any) => any): Observable<void>; /** * Works similar to Dexie ```filter()``` * * @param table table name * @param filterFunction */ filter<TKey extends keyof T>(table: TKey, filterFunction: (value: T[TKey]) => boolean): Dexie.Collection<T[TKey], TKey>; /** * Works similar to Dexie ```get()``` * * @param table table name * @param primaryKey * @param callback */ getByPrimaryKey<TKey extends keyof T>(table: TKey, primaryKey: any, callback?: (item: T[TKey]) => any): Observable<any>; /** * Works similar to Dexie ```get()``` * * @param table table name * @param keyValueMap * @param callback */ getByKeyToValueMap<TKey extends keyof T>(table: TKey, keyValueMap: Object, callback?: (item: T[TKey]) => any): Observable<any>; /** * Works similar to Dexie ```limit()``` * * @param table table name * @param num */ getFirstNItemsOfTable<TKey extends keyof T>(table: TKey, num: number): Dexie.Collection<T[TKey], TKey>; /** * Works similar to Dexie ```orderBy()``` * * @param table table name * @param index */ orderBy<TKey extends keyof T>(table: TKey, index: string): Dexie.Collection<T[TKey], TKey>; /** * Works similar to Dexie ```offset()``` * * @param table table name * @param ignoreUpto */ offset<TKey extends keyof T>(table: TKey, ignoreUpto: number): Dexie.Collection<T[TKey], TKey>; /** * Works similar to Dexie ```reverse()``` * * @param table table name */ reverse<TKey extends keyof T>(table: TKey): Dexie.Collection<T[TKey], TKey>; /** * Works similar to Dexie ```toArray()``` * * @param table table name * @param callback */ toArray<TKey extends keyof T>(table: TKey): Observable<T[TKey][]>; /** * Works similar to Dexie ```toCollection()``` * * @param table table name */ toCollection<TKey extends keyof T>(table: TKey): Dexie.Collection<T[TKey], TKey>; /** * Works similar to Dexie ```update()``` * * @param table table name * @param key * @param changes */ update<TKey extends keyof T>(table: TKey, key: any, changes: T[TKey]): Observable<number>; /** * List to database change events * * @param table table name or empty to listen to all tables */ onChanges<TKey extends keyof T>(table?: TKey): Observable<DatabaseChange<T[TKey]>[]>; /** * Return a observable that emits the current values on every data change * * @param table table name */ valueChanges<TKey extends keyof T>(table: TKey): Observable<T[TKey][]>; }