[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] 03/03: delete database when pressing reset-db
From: |
gnunet |
Subject: |
[taler-wallet-core] 03/03: delete database when pressing reset-db |
Date: |
Fri, 04 Jun 2021 17:42:48 +0200 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository wallet-core.
commit e1b363c7dd210f2e684bc220ced25a255d00f331
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Fri Jun 4 12:42:15 2021 -0300
delete database when pressing reset-db
---
packages/taler-wallet-core/src/db.ts | 4 ++--
packages/taler-wallet-core/src/util/query.ts | 17 ++++++++++++++---
packages/taler-wallet-webextension/src/wxBackend.ts | 2 ++
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/packages/taler-wallet-core/src/db.ts
b/packages/taler-wallet-core/src/db.ts
index c457d0ff..68741809 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -180,8 +180,8 @@ export async function openTalerDatabase(
return new Database(mainDbHandle, Stores);
}
-export function deleteTalerDatabase(idbFactory: IDBFactory): void {
- Database.deleteDatabase(idbFactory, TALER_DB_NAME);
+export function deleteTalerDatabase(idbFactory: IDBFactory): Promise<void> {
+ return Database.deleteDatabase(idbFactory, TALER_DB_NAME);
}
export enum ReserveRecordStatus {
diff --git a/packages/taler-wallet-core/src/util/query.ts
b/packages/taler-wallet-core/src/util/query.ts
index 1ef75a42..7c2aea78 100644
--- a/packages/taler-wallet-core/src/util/query.ts
+++ b/packages/taler-wallet-core/src/util/query.ts
@@ -372,7 +372,17 @@ function runWithTransaction<T, StoreTypes extends
Store<string, {}>>(
const stack = Error("Failed transaction was started here.");
return new Promise((resolve, reject) => {
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 gotFunResult = false;
tx.oncomplete = () => {
@@ -513,8 +523,9 @@ export function openDatabase(
export class Database<StoreMap extends AnyStoreMap> {
constructor(private db: IDBDatabase, stores: StoreMap) {}
- static deleteDatabase(idbFactory: IDBFactory, dbName: string): void {
- idbFactory.deleteDatabase(dbName);
+ static deleteDatabase(idbFactory: IDBFactory, dbName: string): Promise<void>
{
+ const req = idbFactory.deleteDatabase(dbName)
+ return requestToPromise(req)
}
async exportDatabase(): Promise<any> {
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts
b/packages/taler-wallet-webextension/src/wxBackend.ts
index cb7b9295..745fe036 100644
--- a/packages/taler-wallet-webextension/src/wxBackend.ts
+++ b/packages/taler-wallet-webextension/src/wxBackend.ts
@@ -33,6 +33,7 @@ import {
Database,
Stores,
makeErrorDetails,
+ deleteTalerDatabase,
} from "@gnu-taler/taler-wallet-core";
import {
classifyTalerUri,
@@ -121,6 +122,7 @@ async function dispatch(
break;
}
case "reset-db": {
+ await deleteTalerDatabase(indexedDB);
r = wrapResponse(await reinitWallet());
break;
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.