web-push-notifications
Version:
Pushwoosh web push notifications
64 lines (63 loc) • 1.98 kB
TypeScript
import { type TIDBKeyType, type TIDBQueryValue, type TSdkStoreName } from './Storage.types';
export default class Storage {
db: Promise<IDBDatabase>;
/**
* Change database version handler
* @param db
* @param event
*/
private dbVersionChangeHandler;
/**
* Success database request handler
* @param resolve
* @param event
*/
private dbRequestSuccessHandler;
/**
* Need upgrade database version handler
* @param event
*/
private dbRequestUpgradeNeededHandler;
/**
* Open db
*/
getDB(): Promise<IDBDatabase>;
/**
* https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/put
* @param storeName
* @param data
* @param key
*/
put(storeName: TSdkStoreName, data: any, key?: string): Promise<TIDBKeyType>;
/**
* https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/delete
* @param storeName
* @param key
*/
delete(storeName: TSdkStoreName, key: string | number): Promise<void>;
/**
* https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/get
* @param storeName
* @param key
* @param defaultValue
*/
get<Response, D>(storeName: TSdkStoreName, key: TIDBKeyType, defaultValue?: D): Promise<Response | D>;
/**
* https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll
* @param storeName
*/
getAll<Response>(storeName: TSdkStoreName): Promise<Array<Response>>;
/**
* https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/count
* @param storeName
* @param query
*/
count(storeName: TSdkStoreName, query?: IDBKeyRange): Promise<number>;
/**
* https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex/count
* @param storeName
* @param indexName
* @param key
*/
countByIndex(storeName: TSdkStoreName, indexName: string, key?: TIDBQueryValue): Promise<number>;
}