delete database when pressing reset-db
This commit is contained in:
parent
e223c01275
commit
e1b363c7dd
@ -180,8 +180,8 @@ export async function openTalerDatabase(
|
|||||||
return new Database(mainDbHandle, Stores);
|
return new Database(mainDbHandle, Stores);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function deleteTalerDatabase(idbFactory: IDBFactory): void {
|
export function deleteTalerDatabase(idbFactory: IDBFactory): Promise<void> {
|
||||||
Database.deleteDatabase(idbFactory, TALER_DB_NAME);
|
return Database.deleteDatabase(idbFactory, TALER_DB_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum ReserveRecordStatus {
|
export enum ReserveRecordStatus {
|
||||||
|
@ -372,7 +372,17 @@ function runWithTransaction<T, StoreTypes extends Store<string, {}>>(
|
|||||||
const stack = Error("Failed transaction was started here.");
|
const stack = Error("Failed transaction was started here.");
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const storeName = stores.map((x) => x.name);
|
const storeName = stores.map((x) => x.name);
|
||||||
const tx = db.transaction(storeName, mode);
|
|
||||||
|
let txOrUndef: IDBTransaction | undefined = undefined
|
||||||
|
try {
|
||||||
|
txOrUndef = db.transaction(storeName, mode);
|
||||||
|
} catch (e) {
|
||||||
|
logger.error("error opening transaction");
|
||||||
|
logger.error(`${e}`);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const tx = txOrUndef;
|
||||||
|
|
||||||
let funResult: any = undefined;
|
let funResult: any = undefined;
|
||||||
let gotFunResult = false;
|
let gotFunResult = false;
|
||||||
tx.oncomplete = () => {
|
tx.oncomplete = () => {
|
||||||
@ -513,8 +523,9 @@ export function openDatabase(
|
|||||||
export class Database<StoreMap extends AnyStoreMap> {
|
export class Database<StoreMap extends AnyStoreMap> {
|
||||||
constructor(private db: IDBDatabase, stores: StoreMap) {}
|
constructor(private db: IDBDatabase, stores: StoreMap) {}
|
||||||
|
|
||||||
static deleteDatabase(idbFactory: IDBFactory, dbName: string): void {
|
static deleteDatabase(idbFactory: IDBFactory, dbName: string): Promise<void> {
|
||||||
idbFactory.deleteDatabase(dbName);
|
const req = idbFactory.deleteDatabase(dbName)
|
||||||
|
return requestToPromise(req)
|
||||||
}
|
}
|
||||||
|
|
||||||
async exportDatabase(): Promise<any> {
|
async exportDatabase(): Promise<any> {
|
||||||
|
@ -33,6 +33,7 @@ import {
|
|||||||
Database,
|
Database,
|
||||||
Stores,
|
Stores,
|
||||||
makeErrorDetails,
|
makeErrorDetails,
|
||||||
|
deleteTalerDatabase,
|
||||||
} from "@gnu-taler/taler-wallet-core";
|
} from "@gnu-taler/taler-wallet-core";
|
||||||
import {
|
import {
|
||||||
classifyTalerUri,
|
classifyTalerUri,
|
||||||
@ -121,6 +122,7 @@ async function dispatch(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "reset-db": {
|
case "reset-db": {
|
||||||
|
await deleteTalerDatabase(indexedDB);
|
||||||
r = wrapResponse(await reinitWallet());
|
r = wrapResponse(await reinitWallet());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user