Move some js files into debug/, implement db corruption detector

This commit is contained in:
hppeng 2022-07-13 01:17:45 -07:00
parent c1ab8fe8ae
commit d65c58fd92
6 changed files with 20 additions and 4 deletions

View file

@ -1407,7 +1407,7 @@
<a id="saveLink">savelink</a>
</div>
<script src="https://d3js.org/d3.v7.js"></script>
<script type="text/javascript" src="../js/render_compute_graph.js"></script>
<script type="text/javascript" src="../js/debug/render_compute_graph.js"></script>
</body>
</html>

View file

@ -67,6 +67,6 @@
<script type="text/javascript" src="/js/utils.js"></script>
<script type="text/javascript" src="/js/loadheader.js"></script>
<script type="text/javascript" src="/js/icons.js"></script>
<script type="text/javascript" src="/js/dps_vis.js"></script>
<script type="text/javascript" src="/js/debug/dps_vis.js"></script>
</body>
</html>

View file

@ -373,6 +373,15 @@ function init() {
});
decodeBuild(url_tag);
builder_graph_init();
for (const item_node of item_nodes) {
if (item_node.get_value() === null) {
// likely DB load failure...
if (confirm('One or more items failed to load correctly. This could be due to a corrupted build link, or (more likely) a database load failure. Would you like to reload?')) {
hardReload();
}
break;
}
}
}
window.onerror = function(message, source, lineno, colno, error) {

View file

@ -619,8 +619,15 @@ function addClasses(elem, classes) {
*/
async function hardReload() {
//https://gist.github.com/rmehner/b9a41d9f659c9b1c3340
const dbs = await window.indexedDB.databases();
await dbs.forEach(db => { window.indexedDB.deleteDatabase(db.name) });
try {
const dbs = await window.indexedDB.databases();
await dbs.forEach(db => { window.indexedDB.deleteDatabase(db.name) });
} catch (error) {
// Hacky patch for firefox...
console.log(error);
const db_names = ['item_db', 'ing_db', 'map_db', 'tome_db'];
await db_names.forEach(db => { window.indexedDB.deleteDatabase(db) });
}
location.reload(true);
}