@mushi-mushi/core 1.27.0 → 1.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1054,12 +1054,27 @@ function openKeyDb() {
1054
1054
  return new Promise((resolve, reject) => {
1055
1055
  const req = indexedDB.open(KEY_DB, 1);
1056
1056
  req.onupgradeneeded = () => {
1057
+ try {
1058
+ const db = req.result;
1059
+ if (!db) return;
1060
+ if (!db.objectStoreNames.contains(KEY_STORE)) {
1061
+ db.createObjectStore(KEY_STORE);
1062
+ }
1063
+ } catch {
1064
+ }
1065
+ };
1066
+ req.onsuccess = () => {
1057
1067
  const db = req.result;
1058
- if (!db.objectStoreNames.contains(KEY_STORE)) {
1059
- db.createObjectStore(KEY_STORE);
1068
+ if (!db || !db.objectStoreNames.contains(KEY_STORE)) {
1069
+ try {
1070
+ db?.close();
1071
+ } catch {
1072
+ }
1073
+ reject(new Error("key object store unavailable"));
1074
+ return;
1060
1075
  }
1076
+ resolve(db);
1061
1077
  };
1062
- req.onsuccess = () => resolve(req.result);
1063
1078
  req.onerror = () => reject(req.error);
1064
1079
  });
1065
1080
  }
@@ -1202,12 +1217,28 @@ function createOfflineQueue(config = {}) {
1202
1217
  return new Promise((resolve, reject) => {
1203
1218
  const request = indexedDB.open(DB_NAME, DB_VERSION);
1204
1219
  request.onupgradeneeded = () => {
1220
+ try {
1221
+ const db = request.result;
1222
+ if (!db) return;
1223
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
1224
+ db.createObjectStore(STORE_NAME, { keyPath: "id" });
1225
+ }
1226
+ } catch {
1227
+ }
1228
+ };
1229
+ request.onsuccess = () => {
1205
1230
  const db = request.result;
1206
- if (!db.objectStoreNames.contains(STORE_NAME)) {
1207
- db.createObjectStore(STORE_NAME, { keyPath: "id" });
1231
+ if (!db || !db.objectStoreNames.contains(STORE_NAME)) {
1232
+ backendType = "localstorage";
1233
+ try {
1234
+ db?.close();
1235
+ } catch {
1236
+ }
1237
+ reject(new Error("queue object store unavailable"));
1238
+ return;
1208
1239
  }
1240
+ resolve(db);
1209
1241
  };
1210
- request.onsuccess = () => resolve(request.result);
1211
1242
  request.onerror = () => {
1212
1243
  backendType = "localstorage";
1213
1244
  reject(request.error);