Created
August 8, 2020 03:30
-
-
Save azu/2ba7254b3d9fe6e255330d6ff680450e to your computer and use it in GitHub Desktop.
Delete All IndexedDB. It works only Chrome
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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