| 12345678910111213141516171819202122 | /** * Work around Safari 14 IndexedDB open bug. * * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547 * The only solution is to keep nudging it until it's awake. */function idbReady() {    var isSafari = !navigator.userAgentData &&        /Safari\//.test(navigator.userAgent) &&        !/Chrom(e|ium)\//.test(navigator.userAgent);    // No point putting other browsers or older versions of Safari through this mess.    if (!isSafari || !indexedDB.databases)        return Promise.resolve();    var intervalId;    return new Promise(function (resolve) {        var tryIdb = function () { return indexedDB.databases().finally(resolve); };        intervalId = setInterval(tryIdb, 100);        tryIdb();    }).finally(function () { return clearInterval(intervalId); });}module.exports = idbReady;
 |