gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]