From 39dabd82aeafb5b51a6bae81fa5cdd96a1b6ab05 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Thu, 2 Sep 2021 16:02:11 +0300 Subject: [PATCH] Safari 14 idb fix --- package.json | 5 ++++- src/indexeddb/file-ops-fallback.js | 3 +++ yarn.lock | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f9ad4b9..7529d66 100644 --- a/package.json +++ b/package.json @@ -35,5 +35,8 @@ "README.md", "dist/**/*", "src/**/*" - ] + ], + "dependencies": { + "safari-14-idb-fix": "^1.0.4" + } } diff --git a/src/indexeddb/file-ops-fallback.js b/src/indexeddb/file-ops-fallback.js index 5b1b1fb..40783bd 100644 --- a/src/indexeddb/file-ops-fallback.js +++ b/src/indexeddb/file-ops-fallback.js @@ -1,4 +1,5 @@ import { LOCK_TYPES, isSafeToWrite, getPageSize } from '../sqlite-util'; +import idbReady from 'safari-14-idb-fix'; function positionToKey(pos, blockSize) { // We are forced to round because of floating point error. `pos` @@ -7,6 +8,8 @@ function positionToKey(pos, blockSize) { } async function openDb(name) { + await idbReady(); + return new Promise((resolve, reject) => { let req = globalThis.indexedDB.open(name, 2); req.onsuccess = event => { diff --git a/yarn.lock b/yarn.lock index 27ae1d7..c159383 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5209,6 +5209,11 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= +safari-14-idb-fix@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/safari-14-idb-fix/-/safari-14-idb-fix-1.0.4.tgz#5c68ba63e2a8ae0d89a0aa1e13fe89e3aef7da19" + integrity sha512-4+Y2baQdgJpzu84d0QjySl70Kyygzf0pepVg8NVg4NnQEPpfC91fAn0baNvtStlCjUUxxiu0BOMiafa98fRRuA== + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"