rxidb
Version:
RxJS wrapper for IndexedDB
39 lines (38 loc) • 1.06 kB
TypeScript
import { Observable } from 'rxjs';
import { RxIDBStore } from './rxidb-store';
/**
* RxIDBUpgrade provides common interface for store.
*/
export interface IRxIDBUpgrade {
/**
* Add store:
* upgradeDB.addStore('MyStore', { data: new MyStore() }).subscribe();
*/
create(key: string, options?: IDBObjectStoreParameters): void;
/**
* Delete store:
* upgradeDB.deleteStore('MyStore').subscribe();
*/
delete(key: string): void;
/**
* Has store:
* upgradeDB.hasStore('MyStore').subscribe();
*/
has(key: string): boolean;
}
/**
* RxIDB interface
*/
export interface IRxIDB {
get(key: IDBValidKey): RxIDBStore;
transaction(storeNames: string | string[], mode?: 'readonly' | 'readwrite'): IDBTransaction;
}
/**
* RxIDBStore interface
*/
export interface IRxIDBStore {
delete(key: IDBValidKey): Observable<void>;
get(key: IDBValidKey): Observable<any>;
set(value: any, key?: IDBValidKey): Observable<void>;
tx(mode?: 'readonly' | 'readwrite'): Observable<IDBTransaction>;
}