diff options
Diffstat (limited to 'extension/background/db.js')
-rw-r--r-- | extension/background/db.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/extension/background/db.js b/extension/background/db.js index d9bff8fee..0e4576851 100644 --- a/extension/background/db.js +++ b/extension/background/db.js @@ -47,3 +47,30 @@ function openTalerDb() { }; }); } +function exportDb(db) { + let dump = { + name: db.name, + version: db.version, + stores: {} + }; + return new Promise((resolve, reject) => { + let tx = db.transaction(db.objectStoreNames); + tx.addEventListener('complete', (e) => { + resolve(dump); + }); + for (let i = 0; i < db.objectStoreNames.length; i++) { + let name = db.objectStoreNames[i]; + let storeDump = {}; + dump.stores[name] = storeDump; + let store = tx.objectStore(name) + .openCursor() + .addEventListener('success', (e) => { + let cursor = e.target.result; + if (cursor) { + storeDump[cursor.key] = cursor.value; + cursor.continue(); + } + }); + } + }); +} |