ngx-indexed-db
Version:
Angular wrapper to IndexedDB database.
207 lines (206 loc) • 9.25 kB
TypeScript
import { Observable } from 'rxjs';
import { DBConfig, DBMode, IndexKey, NgxIDBCursorWithValue, ObjectStoreMeta, WithID } from './ngx-indexed-db.meta';
import * as i0 from "@angular/core";
export declare class NgxIndexedDBService {
private dbConfigs;
private indexedDB;
private defaultDatabaseName?;
private selectedDb;
constructor(dbConfigs: Record<string, DBConfig>, indexedDB: IDBFactory);
private instanciateConfig;
private get dbConfig();
/**
* The function return the current version of database
*
* @Return the current version of database as number
*/
getDatabaseVersion(): Observable<number | string>;
/**
* Selects a database for the current context.
* @param {string} [databaseName=undefined] Database name to select.
*/
selectDb(databaseName?: string): void;
/**
* Allows to create a new object store ad-hoc
* @param storeName The name of the store to be created
* @param migrationFactory The migration factory if exists
*/
createObjectStore(storeSchema: ObjectStoreMeta, migrationFactory?: () => {
[key: number]: (db: IDBDatabase, transaction: IDBTransaction) => void;
}): Promise<void>;
/**
* Create dynamic store if not already without incrementing version
* For Dynamic store
* @param storeName The name of the store to create
*/
createDynamicObjectStore(storeSchema: ObjectStoreMeta, migrationFactory?: () => {
[key: number]: (db: IDBDatabase, transaction: IDBTransaction) => void;
}): Promise<void>;
/**
* Adds new entry in the store and returns its key
* @param storeName The name of the store to add the item
* @param value The entry to be added
* @param key The optional key for the entry
*/
add<T>(storeName: string, value: T, key?: any): Observable<T & WithID>;
/**
* Adds new entries in the store and returns its key
* @param storeName The name of the store to add the item
* @param values The entries to be added containing optional key attribute
*/
bulkAdd<T>(storeName: string, values: Array<T & {
key?: any;
}>): Observable<number[]>;
/**
* Delete entries in the store and returns current entries in the store
* @param storeName The name of the store to add the item
* @param keys The keys to be deleted
*/
bulkDelete(storeName: string, keys: IDBValidKey[]): Observable<number[]>;
/**
* Returns entry by key.
* @param storeName The name of the store to query
* @param key The entry key
*/
getByKey<T>(storeName: string, key: IDBValidKey): Observable<T>;
/**
* Retrieve multiple entries in the store
* @param storeName The name of the store to retrieve the items
* @param keys The ids entries to be retrieve
*/
bulkGet<T>(storeName: string, keys: Array<IDBValidKey>): Observable<T[]>;
/**
* Returns entry by id.
* @param storeName The name of the store to query
* @param id The entry id
*/
getByID<T>(storeName: string, id: string | number): Observable<T>;
/**
* Returns entry by index.
* @param storeName The name of the store to query
* @param indexName The index name to filter
* @param key The entry key.
*/
getByIndex<T>(storeName: string, indexName: string, key: IDBValidKey): Observable<T>;
/**
* Return all elements from one store
* @param storeName The name of the store to select the items
*/
getAll<T>(storeName: string): Observable<T[]>;
/**
* Adds or updates a record in store with the given value and key. Return all items present in the store
* @param storeName The name of the store to update
* @param value The new value for the entry
*/
update<T>(storeName: string, value: T): Observable<T>;
/**
* Adds or updates a record in store with the given value and key. Return all items present in the store
* @param storeName The name of the store to update
* @param items The values to update in the DB
*
* @Return The return value is an Observable with the primary key of the object that was last in given array
*
* @error If the call to bulkPut fails the transaction will be aborted and previously inserted entities will be deleted
*/
bulkPut<T>(storeName: string, items: T[]): Observable<IDBValidKey>;
/**
* Returns all items from the store after delete.
* @param storeName The name of the store to have the entry deleted
* @param query The key or key range criteria to apply
*/
delete<T>(storeName: string, query: IDBValidKey | IDBKeyRange): Observable<T[]>;
/**
* Returns after a successful delete.
* @param storeName The name of the store to have the entry deleted
* @param query The key or key range criteria to apply
*/
deleteByKey(storeName: string, query: IDBValidKey | IDBKeyRange): Observable<void>;
/**
* Delete all items by an index.
* @param storeName The name of the store to query
* @param indexName The index name to filter
* @param query The key or key range criteria to apply
* @param direction A string telling the cursor which direction to travel.
*/
deleteAllByIndex<T>(storeName: string, indexName: string, query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): Observable<void>;
/**
* Clear the data in the objectStore.
* @param storeName The name of the store to have the entries deleted
*/
clear(storeName: string): Observable<void>;
/**
* Delete database.
*/
deleteDatabase(): Observable<void>;
/**
* Returns the open cursor
* If no matching data are present, the observable is completed immediately.
* @param options The options to open the cursor
* @param options.storeName The name of the store to have the entries deleted
* @param options.query The key or key range criteria to apply
* @param options.direction A string telling the cursor which direction to travel
* @param options.mode The transaction mode.
*/
openCursor<V = any, P extends IDBValidKey = IDBValidKey, K extends IDBValidKey = IDBValidKey>(options: {
storeName: string;
query?: IDBValidKey | IDBKeyRange | null;
direction?: IDBCursorDirection;
mode: DBMode;
}): Observable<NgxIDBCursorWithValue<V, P, K>>;
/**
* Open a cursor by index filter
* If no matching data are present, the observable is completed immediately.
* @param options The options to open the cursor
* @param options.storeName The name of the store to query
* @param options.indexName The index name to filter
* @param options.query The key or key range criteria to apply
* @param options.direction A string telling the cursor which direction to travel
* @param options.mode The transaction mode.
*/
openCursorByIndex<V, P extends IDBValidKey = IDBValidKey, K extends IDBValidKey = IDBValidKey>(options: {
storeName: string;
indexName: string;
query?: IDBValidKey | IDBKeyRange | null;
direction?: IDBCursorDirection;
mode?: DBMode;
}): Observable<NgxIDBCursorWithValue<V, P, K>>;
/**
* Returns all items by an index.
* @param storeName The name of the store to query
* @param indexName The index name to filter
* @param query The key or key range criteria to apply
* @param direction A string telling the cursor which direction to travel.
*/
getAllByIndex<T>(storeName: string, indexName: string, query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): Observable<T[]>;
/**
* Returns all primary keys by an index.
* @param storeName The name of the store to query
* @param query The key or key range criteria to apply
* @param direction A string telling the cursor which direction to travel.
*/
getAllKeysByIndex<P extends IDBValidKey = IDBValidKey, K extends IDBValidKey = IDBValidKey>(storeName: string, indexName: string, query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): Observable<IndexKey<P, K>[]>;
/**
* Returns the number of rows in a store.
* @param storeName The name of the store to query
* @param query The key or key range criteria to apply.
*/
count(storeName: string, query?: IDBValidKey | IDBKeyRange): Observable<number>;
/**
* Returns the number of records within a key range.
* @param storeName The name of the store to query
* @param indexName The index name to filter
* @param query The key or key range criteria to apply.
*/
countByIndex(storeName: string, indexName: string, query?: IDBValidKey | IDBKeyRange): Observable<number>;
/**
* Delete the store by name.
* @param storeName The name of the store to query
*/
deleteObjectStore(storeName: string): Observable<void>;
/**
* Get all object store names.
*/
getAllObjectStoreNames(): Observable<string[]>;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxIndexedDBService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<NgxIndexedDBService>;
}