Skip to content

Commit

Permalink
Merge pull request #466 from matrix-org/rav/improve_indexeddb_errors
Browse files Browse the repository at this point in the history
Improve error reporting from indexeddbstore.clearDatabase
  • Loading branch information
dbkr authored Jun 19, 2017
2 parents db66023 + 009c28a commit d7e1910
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
23 changes: 21 additions & 2 deletions src/store/indexeddb-local-backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,27 @@ LocalIndexedDBStoreBackend.prototype = {
* @return {Promise} Resolved when the database is cleared.
*/
clearDatabase: function() {
console.log("Removing indexeddb instance: ", this._dbName);
return promiseifyRequest(this.indexedDB.deleteDatabase(this._dbName));
return new q.Promise((resolve, reject) => {
console.log(`Removing indexeddb instance: ${this._dbName}`);
const req = this.indexedDB.deleteDatabase(this._dbName);

req.onblocked = () => {
reject(new Error(
"unable to delete indexeddb because it is open elsewhere",
));
};

req.onerror = (ev) => {
reject(new Error(
"unable to delete indexeddb: " + ev.target.error,
));
};

req.onsuccess = () => {
console.log(`Removed indexeddb instance: ${this._dbName}`);
resolve();
};
});
},

/**
Expand Down
2 changes: 1 addition & 1 deletion src/store/indexeddb.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ IndexedDBStore.prototype.deleteAllData = function() {
return this.backend.clearDatabase().then(() => {
console.log("Deleted indexeddb data.");
}, (err) => {
console.error("Failed to delete indexeddb data: ", err);
console.error(`Failed to delete indexeddb data: ${err}`);
throw err;
});
};
Expand Down

0 comments on commit d7e1910

Please sign in to comment.