UNPKG

ng-indexed-db

Version:

An IndexedDB Angular module wrapped in RXJS

56 lines (55 loc) 1.98 kB
import { InjectionToken } from '@angular/core'; import { Observable } from 'rxjs'; import { NgDataBase } from './types/database.type'; import { NgDatabaseFactory } from './factory/database-factory'; import { IdGenerator } from './id-generator/id-generator'; /** Injection token that gives the databases metadata */ export declare const NG_DATABASES: InjectionToken<{ element: any; }>; /** * Service that handles all Indexed Databases and * tables requests. */ export declare class IndexedDB { private databases; private idGenerator; private databaseFactory; /** * Indicates if all databases have been created. * Only emits an event when recives a true value. */ readonly onReady: Observable<boolean>; constructor(databases: NgDataBase[], idGenerator: IdGenerator, databaseFactory: NgDatabaseFactory); /** * Request a list with all elements * @param storeName Store name * @param databaseName Database name */ list<M = any>(storeName: string, databaseName?: string): Observable<M[]>; /** * Request an element by key * @param storeName Store name * @param key Key value to find the element * @param databaseName Database name */ get<M = any>(storeName: string, key: any, databaseName?: string): Observable<M>; /** * Request to store an element * @param storeName Store name * @param databaseName Database name */ create<M = any>(storeName: string, data: M, databaseName?: string): Observable<M>; /** * Request to update a stored element * @param storeName Store name * @param databaseName Database name */ update<M = any>(storeName: string, data: M, databaseName?: string): Observable<M>; /** * Request to delete a stored element * @param storeName Store name * @param databaseName Database name */ delete(storeName: string, key: IDBValidKey, databaseName?: string): Observable<boolean>; }