UNPKG

@atomiqlabs/sdk-lib

Version:

Basic SDK functionality library for atomiq

36 lines (35 loc) 1.81 kB
import { LoggerType } from "../utils/Utils"; import { IUnifiedStorage, QueryParams, UnifiedStorageCompositeIndexes, UnifiedStoredObject } from "../storage/IUnifiedStorage"; import { ISwap } from "../swaps/ISwap"; import { SwapType } from "../swaps/enums/SwapType"; import { UnifiedSwapStorageIndexes } from "../storage/UnifiedSwapStorage"; export type QuerySetCondition = { key: string; values: Set<any>; }; export declare class IndexedDBUnifiedStorage implements IUnifiedStorage<UnifiedSwapStorageIndexes, UnifiedStorageCompositeIndexes> { protected readonly logger: LoggerType; storageKey: string; db: IDBDatabase; constructor(storageKey: string); private tryMigrateLocalStorage; private tryMigrateOldIndexedDB; tryMigrate(storageKeys: [string, SwapType][], reviver: (obj: any) => ISwap): Promise<boolean>; private executeTransaction; private executeTransactionArr; private executeTransactionWithCursor; init(): Promise<void>; /** * Params are specified in the following way: * - [[condition1, condition2]] - returns all rows where condition1 AND condition2 is met * - [[condition1], [condition2]] - returns all rows where condition1 OR condition2 is met * - [[condition1, condition2], [condition3]] - returns all rows where (condition1 AND condition2) OR condition3 is met * @param params */ query(params: Array<Array<QueryParams>>): Promise<Array<UnifiedStoredObject>>; querySingle(params: Array<QueryParams>): Promise<Array<UnifiedStoredObject>>; remove(object: UnifiedStoredObject): Promise<void>; removeAll(arr: UnifiedStoredObject[]): Promise<void>; save(object: UnifiedStoredObject): Promise<void>; saveAll(arr: UnifiedStoredObject[]): Promise<void>; }