Skip to content

Instantly share code, notes, and snippets.

@azu
Created August 8, 2020 03:30
Show Gist options
  • Save azu/2ba7254b3d9fe6e255330d6ff680450e to your computer and use it in GitHub Desktop.
Save azu/2ba7254b3d9fe6e255330d6ff680450e to your computer and use it in GitHub Desktop.
Delete All IndexedDB. It works only Chrome
const forceDeleteDB = async (name: string) => {
if (!("databases" in indexedDB)) {
return;
}
// @ts-ignore
const dbs = await window.indexedDB.databases();
const deleteDB = (name: string) => {
return new Promise((resolve, reject) => {
const transaction = window.indexedDB.deleteDatabase(name);
transaction.addEventListener("success", () => {
resolve();
});
transaction.addEventListener("upgradeneeded", () => {
reject(transaction.error);
});
transaction.addEventListener("blocked", () => {
reject(transaction.error);
});
transaction.addEventListener("error", () => {
reject(transaction.error);
});
});
};
return Promise.all(dbs.map((db: any) => deleteDB(db.name)));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment