diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-01-05 14:20:13 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-01-05 14:20:13 +0100 |
commit | b459ffb4241877670fb7f820a67d959fec2d995c (patch) | |
tree | 23277212792e701218100c010dcea66da3b199d2 /extension/background/db.js | |
parent | c48f2d39f0f62ea8f862ba08234b8a5376a11a2e (diff) |
more complete DB abstractions
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(); + } + }); + } + }); +} |