ngx-dexie-observable
Version:
Dexie module for Angular 2.0+
157 lines (156 loc) • 5.36 kB
TypeScript
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][]>;
}