fix #5845 added run-gc on webex
This commit is contained in:
parent
a1ad9727ee
commit
038dcbc9b7
@ -1895,7 +1895,6 @@ export function importDb(db: IDBDatabase, dump: DatabaseDump): Promise<any> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const tx = db.transaction(Array.from(db.objectStoreNames), "readwrite");
|
||||
tx.addEventListener("complete", () => {
|
||||
tx.commit();
|
||||
resolve(db);
|
||||
});
|
||||
for (let i = 0; i < db.objectStoreNames.length; i++) {
|
||||
@ -1908,5 +1907,6 @@ export function importDb(db: IDBDatabase, dump: DatabaseDump): Promise<any> {
|
||||
tx.objectStore(name).put(value);
|
||||
});
|
||||
}
|
||||
tx.commit();
|
||||
});
|
||||
}
|
||||
|
@ -36,7 +36,8 @@ export function DeveloperPage(): VNode {
|
||||
const [status, timedOut] = useDiagnostics();
|
||||
|
||||
const listenAllEvents = Array.from<NotificationType>({ length: 1 });
|
||||
listenAllEvents.includes = () => true; // includes every event
|
||||
//FIXME: waiting for retry notification make a always increasing loop of notifications
|
||||
listenAllEvents.includes = (e) => e !== "waiting-for-retry"; // includes every event
|
||||
|
||||
const response = useAsyncAsHook(async () => {
|
||||
const op = await wxApi.getPendingOperations();
|
||||
@ -160,11 +161,22 @@ export function View({
|
||||
onClick={() =>
|
||||
confirmReset(
|
||||
i18n.str`Do you want to IRREVOCABLY DESTROY everything inside your wallet and LOSE ALL YOUR COINS?`,
|
||||
wxApi.resetDb,
|
||||
)
|
||||
}
|
||||
>
|
||||
<i18n.Translate>reset</i18n.Translate>
|
||||
</button>
|
||||
<button
|
||||
onClick={() =>
|
||||
confirmReset(
|
||||
i18n.str`TESTING: This may delete all your coin, proceed with caution`,
|
||||
wxApi.runGarbageCollector,
|
||||
)
|
||||
}
|
||||
>
|
||||
<i18n.Translate>run gc</i18n.Translate>
|
||||
</button>
|
||||
<br />
|
||||
<button onClick={() => fileRef?.current?.click()}>
|
||||
<i18n.Translate>import database</i18n.Translate>
|
||||
@ -385,9 +397,10 @@ function toBase64(str: string): string {
|
||||
|
||||
export async function confirmReset(
|
||||
confirmTheResetMessage: string,
|
||||
cb: () => Promise<void>,
|
||||
): Promise<void> {
|
||||
if (confirm(confirmTheResetMessage)) {
|
||||
await wxApi.resetDb();
|
||||
await cb();
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
@ -140,6 +140,14 @@ export function resetDb(): Promise<void> {
|
||||
return callBackend("reset-db", {});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset database
|
||||
*/
|
||||
export function runGarbageCollector(): Promise<void> {
|
||||
return callBackend("run-gc", {});
|
||||
}
|
||||
|
||||
|
||||
export function getFeeForDeposit(
|
||||
depositPaytoUri: string,
|
||||
amount: AmountString,
|
||||
|
@ -33,6 +33,8 @@ import {
|
||||
import {
|
||||
DbAccess,
|
||||
deleteTalerDatabase,
|
||||
exportDb,
|
||||
importDb,
|
||||
makeErrorDetail,
|
||||
OpenedPromise,
|
||||
openPromise,
|
||||
@ -129,6 +131,18 @@ async function dispatch(
|
||||
r = wrapResponse(await reinitWallet());
|
||||
break;
|
||||
}
|
||||
case "run-gc": {
|
||||
logger.info("gc")
|
||||
const dump = await exportDb(currentDatabase!.idbHandle());
|
||||
await deleteTalerDatabase(indexedDB as any);
|
||||
logger.info("cleaned")
|
||||
await reinitWallet();
|
||||
logger.info("init")
|
||||
await importDb(currentDatabase!.idbHandle(), dump)
|
||||
logger.info("imported")
|
||||
r = wrapResponse({ result: true });
|
||||
break;
|
||||
}
|
||||
case "containsHeaderListener": {
|
||||
const res = await platform.containsTalerHeaderListener();
|
||||
r = wrapResponse({ newValue: res });
|
||||
|
Loading…
Reference in New Issue
Block a user