txn.addEventListener("abort", e => {
                    console.warn(`transaction ${mode} for ${storeName} aborted`, e.target.error);
                });
                return txn;
            }

            _createStores(db) {
                db.createObjectStore("foos", {keyPath: "id"});
            }
        }

        async function getAll(store, depth = 0) {
            if (depth < 15) {
                return await getAll(store, depth + 1);
            } 
            const request = store.openCursor