ng-indexed-db
Version:
An IndexedDB Angular module wrapped in RXJS
58 lines (57 loc) • 1.74 kB
TypeScript
import { Observable } from 'rxjs';
import { NgStore } from './types/store.type';
/**
* IndexedDB client
*/
export declare class IndexedDatabase {
/** IndexedBD instance */
private database;
/** Indicates if databases has been upgraded */
private upgraded;
constructor(database: IDBDatabase, upgraded: boolean, stores?: NgStore[]);
/**
* If table has been upgrades, generates the recived stores
* @param tables Tables metadata
*/
createTables(tables: NgStore[]): void;
/**
* Generates one single sotre
* @param storeName Store name
*/
createTable(store: NgStore): void;
/**
* Request a list with all store elements
* @param storeName Store name
*/
list<M = any>(storeName: string): Observable<M[]>;
/**
* Request a single object found by the given key
* @param storeName Store name
* @param key Predicate key
*/
get<M = any>(storeName: string, key: any): Observable<M>;
/**
* Request to store an element
* @param storeName Store name
* @param data data to store
*/
create<M = any>(storeName: string, data: M): Observable<M>;
/**
* Request to update an element
* @param storeName Store name
* @param data data to store
*/
update<M = any>(storeName: string, data: M): Observable<M>;
/**
* Request to delete an element with the given key
* @param storeName Store name
* @param key Element key to delete
*/
delete(storeName: string, key: IDBValidKey): Observable<boolean>;
/**
* Find the a store table by the given name
* @param storeName Store name to find
* @param mode Transaction mode
*/
private store;
}