ng-indexed-db
Version:
An IndexedDB Angular module wrapped in RXJS
56 lines (55 loc) • 1.98 kB
TypeScript
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>;
}