tinybase 6.1.0-beta.3 → 6.1.0-beta.5

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.
Files changed (233) hide show
  1. package/@types/persisters/index.d.ts +83 -40
  2. package/@types/persisters/persister-automerge/index.d.ts +4 -4
  3. package/@types/persisters/persister-automerge/with-schemas/index.d.ts +4 -4
  4. package/@types/persisters/persister-browser/index.d.ts +4 -4
  5. package/@types/persisters/persister-browser/with-schemas/index.d.ts +4 -4
  6. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +3 -3
  7. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +3 -3
  8. package/@types/persisters/persister-electric-sql/index.d.ts +3 -3
  9. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +3 -3
  10. package/@types/persisters/persister-expo-sqlite/index.d.ts +3 -3
  11. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +3 -3
  12. package/@types/persisters/persister-file/index.d.ts +2 -2
  13. package/@types/persisters/persister-file/with-schemas/index.d.ts +2 -2
  14. package/@types/persisters/persister-indexed-db/index.d.ts +2 -2
  15. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +2 -2
  16. package/@types/persisters/persister-libsql/index.d.ts +3 -3
  17. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +3 -3
  18. package/@types/persisters/persister-partykit-client/index.d.ts +2 -2
  19. package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +2 -2
  20. package/@types/persisters/persister-pglite/index.d.ts +3 -3
  21. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +3 -3
  22. package/@types/persisters/persister-postgres/index.d.ts +3 -3
  23. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +3 -3
  24. package/@types/persisters/persister-powersync/index.d.ts +3 -3
  25. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +3 -3
  26. package/@types/persisters/persister-remote/index.d.ts +2 -2
  27. package/@types/persisters/persister-remote/with-schemas/index.d.ts +2 -2
  28. package/@types/persisters/persister-sqlite-bun/index.d.ts +159 -0
  29. package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +178 -0
  30. package/@types/persisters/persister-sqlite-wasm/index.d.ts +3 -3
  31. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +3 -3
  32. package/@types/persisters/persister-sqlite3/index.d.ts +3 -3
  33. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +3 -3
  34. package/@types/persisters/persister-yjs/index.d.ts +4 -4
  35. package/@types/persisters/persister-yjs/with-schemas/index.d.ts +4 -4
  36. package/@types/persisters/with-schemas/index.d.ts +87 -42
  37. package/@types/synchronizers/index.d.ts +18 -16
  38. package/@types/synchronizers/synchronizer-broadcast-channel/index.d.ts +3 -3
  39. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +3 -3
  40. package/@types/synchronizers/synchronizer-local/index.d.ts +2 -2
  41. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +2 -2
  42. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +5 -5
  43. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +5 -5
  44. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +37 -37
  45. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +37 -37
  46. package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +7 -7
  47. package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +7 -7
  48. package/@types/synchronizers/with-schemas/index.d.ts +18 -16
  49. package/@types/ui-react/index.d.ts +2 -2
  50. package/@types/ui-react/with-schemas/index.d.ts +2 -2
  51. package/index.js +23 -17
  52. package/mergeable-store/index.js +23 -17
  53. package/mergeable-store/with-schemas/index.js +23 -17
  54. package/min/index.js +1 -1
  55. package/min/index.js.gz +0 -0
  56. package/min/mergeable-store/index.js +1 -1
  57. package/min/mergeable-store/index.js.gz +0 -0
  58. package/min/mergeable-store/with-schemas/index.js +1 -1
  59. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/index.js +1 -1
  61. package/min/persisters/index.js.gz +0 -0
  62. package/min/persisters/persister-automerge/index.js +1 -1
  63. package/min/persisters/persister-automerge/index.js.gz +0 -0
  64. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  65. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  66. package/min/persisters/persister-browser/index.js +1 -1
  67. package/min/persisters/persister-browser/index.js.gz +0 -0
  68. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  69. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  70. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  71. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  72. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  73. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  74. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  75. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  76. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  77. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  78. package/min/persisters/persister-electric-sql/index.js +1 -1
  79. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  80. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  81. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  82. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  83. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  84. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  85. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  86. package/min/persisters/persister-file/index.js +1 -1
  87. package/min/persisters/persister-file/index.js.gz +0 -0
  88. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  89. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  90. package/min/persisters/persister-indexed-db/index.js +1 -1
  91. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  92. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  93. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  94. package/min/persisters/persister-libsql/index.js +1 -1
  95. package/min/persisters/persister-libsql/index.js.gz +0 -0
  96. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  97. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  98. package/min/persisters/persister-partykit-client/index.js +1 -1
  99. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  100. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  101. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  102. package/min/persisters/persister-pglite/index.js +1 -1
  103. package/min/persisters/persister-pglite/index.js.gz +0 -0
  104. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  105. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  106. package/min/persisters/persister-postgres/index.js +1 -1
  107. package/min/persisters/persister-postgres/index.js.gz +0 -0
  108. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  109. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  110. package/min/persisters/persister-powersync/index.js +1 -1
  111. package/min/persisters/persister-powersync/index.js.gz +0 -0
  112. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  113. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  114. package/min/persisters/persister-remote/index.js +1 -1
  115. package/min/persisters/persister-remote/index.js.gz +0 -0
  116. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  117. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  118. package/min/persisters/persister-sqlite-bun/index.js +1 -0
  119. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  120. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -0
  121. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  122. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  123. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  124. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  125. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  126. package/min/persisters/persister-sqlite3/index.js +1 -1
  127. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  128. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  129. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  130. package/min/persisters/persister-yjs/index.js +1 -1
  131. package/min/persisters/persister-yjs/index.js.gz +0 -0
  132. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  133. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  134. package/min/persisters/with-schemas/index.js +1 -1
  135. package/min/persisters/with-schemas/index.js.gz +0 -0
  136. package/min/store/index.js +1 -1
  137. package/min/store/index.js.gz +0 -0
  138. package/min/store/with-schemas/index.js +1 -1
  139. package/min/store/with-schemas/index.js.gz +0 -0
  140. package/min/synchronizers/index.js +1 -1
  141. package/min/synchronizers/index.js.gz +0 -0
  142. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  143. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  144. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  145. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  146. package/min/synchronizers/synchronizer-local/index.js +1 -1
  147. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  148. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  149. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  150. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  151. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  152. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  153. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  154. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  155. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  156. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  157. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  158. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  159. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  160. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  161. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  162. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  163. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  164. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  165. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  166. package/min/synchronizers/with-schemas/index.js +1 -1
  167. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  168. package/min/ui-react-inspector/index.js +1 -1
  169. package/min/ui-react-inspector/index.js.gz +0 -0
  170. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  171. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  172. package/min/with-schemas/index.js +1 -1
  173. package/min/with-schemas/index.js.gz +0 -0
  174. package/package.json +46 -6
  175. package/persisters/index.js +293 -161
  176. package/persisters/persister-automerge/index.js +55 -50
  177. package/persisters/persister-automerge/with-schemas/index.js +55 -50
  178. package/persisters/persister-browser/index.js +56 -55
  179. package/persisters/persister-browser/with-schemas/index.js +56 -55
  180. package/persisters/persister-cr-sqlite-wasm/index.js +181 -134
  181. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +181 -134
  182. package/persisters/persister-durable-object-storage/index.js +58 -53
  183. package/persisters/persister-durable-object-storage/with-schemas/index.js +58 -53
  184. package/persisters/persister-electric-sql/index.js +181 -134
  185. package/persisters/persister-electric-sql/with-schemas/index.js +181 -134
  186. package/persisters/persister-expo-sqlite/index.js +181 -134
  187. package/persisters/persister-expo-sqlite/with-schemas/index.js +181 -134
  188. package/persisters/persister-file/index.js +55 -50
  189. package/persisters/persister-file/with-schemas/index.js +55 -50
  190. package/persisters/persister-indexed-db/index.js +82 -78
  191. package/persisters/persister-indexed-db/with-schemas/index.js +82 -78
  192. package/persisters/persister-libsql/index.js +182 -135
  193. package/persisters/persister-libsql/with-schemas/index.js +182 -135
  194. package/persisters/persister-partykit-client/index.js +56 -51
  195. package/persisters/persister-partykit-client/with-schemas/index.js +56 -51
  196. package/persisters/persister-pglite/index.js +299 -173
  197. package/persisters/persister-pglite/with-schemas/index.js +299 -173
  198. package/persisters/persister-postgres/index.js +296 -171
  199. package/persisters/persister-postgres/with-schemas/index.js +296 -171
  200. package/persisters/persister-powersync/index.js +189 -138
  201. package/persisters/persister-powersync/with-schemas/index.js +189 -138
  202. package/persisters/persister-remote/index.js +55 -50
  203. package/persisters/persister-remote/with-schemas/index.js +55 -50
  204. package/persisters/persister-sqlite-bun/index.js +1171 -0
  205. package/persisters/persister-sqlite-bun/with-schemas/index.js +1171 -0
  206. package/persisters/persister-sqlite-wasm/index.js +182 -135
  207. package/persisters/persister-sqlite-wasm/with-schemas/index.js +182 -135
  208. package/persisters/persister-sqlite3/index.js +181 -134
  209. package/persisters/persister-sqlite3/with-schemas/index.js +181 -134
  210. package/persisters/persister-yjs/index.js +55 -50
  211. package/persisters/persister-yjs/with-schemas/index.js +55 -50
  212. package/persisters/with-schemas/index.js +293 -161
  213. package/readme.md +2 -2
  214. package/releases.md +29 -1
  215. package/store/index.js +20 -15
  216. package/store/with-schemas/index.js +20 -15
  217. package/synchronizers/index.js +68 -63
  218. package/synchronizers/synchronizer-broadcast-channel/index.js +68 -63
  219. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +68 -63
  220. package/synchronizers/synchronizer-local/index.js +68 -63
  221. package/synchronizers/synchronizer-local/with-schemas/index.js +68 -63
  222. package/synchronizers/synchronizer-ws-client/index.js +68 -63
  223. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +68 -63
  224. package/synchronizers/synchronizer-ws-server/index.js +79 -70
  225. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +79 -70
  226. package/synchronizers/synchronizer-ws-server-durable-object/index.js +69 -51
  227. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +69 -51
  228. package/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  229. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  230. package/synchronizers/with-schemas/index.js +68 -63
  231. package/ui-react-inspector/index.js +68 -60
  232. package/ui-react-inspector/with-schemas/index.js +68 -60
  233. package/with-schemas/index.js +23 -17
@@ -15,6 +15,14 @@ const test = (regex, subject) => regex.test(subject);
15
15
  const errorNew = (message) => {
16
16
  throw new Error(message);
17
17
  };
18
+ const tryCatch = async (action, then1, then2) => {
19
+ try {
20
+ return await action();
21
+ } catch (error) {
22
+ /* istanbul ignore next */
23
+ then1?.(error);
24
+ }
25
+ };
18
26
 
19
27
  const arrayForEach = (array, cb) => array.forEach(cb);
20
28
  const arrayClear = (array, to) => array.splice(0, to);
@@ -250,12 +258,7 @@ const createCustomPersister = (
250
258
  while (
251
259
  !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
252
260
  ) {
253
- try {
254
- await action();
255
- } catch (error) {
256
- /* istanbul ignore next */
257
- onIgnoredError?.(error);
258
- }
261
+ await tryCatch(action, onIgnoredError);
259
262
  }
260
263
  mapSet(scheduleRunning, scheduleId, 0);
261
264
  }
@@ -275,21 +278,23 @@ const createCustomPersister = (
275
278
  setStatus(1 /* Loading */);
276
279
  loads++;
277
280
  await schedule(async () => {
278
- try {
279
- const content = await getPersisted();
280
- if (isArray(content)) {
281
- setContentOrChanges(content);
282
- } else if (initialContent) {
283
- setDefaultContent(initialContent);
284
- } else {
285
- errorNew(`Content is not an array: ${content}`);
286
- }
287
- } catch (error) {
288
- onIgnoredError?.(error);
289
- if (initialContent) {
290
- setDefaultContent(initialContent);
291
- }
292
- }
281
+ await tryCatch(
282
+ async () => {
283
+ const content = await getPersisted();
284
+ if (isArray(content)) {
285
+ setContentOrChanges(content);
286
+ } else if (initialContent) {
287
+ setDefaultContent(initialContent);
288
+ } else {
289
+ errorNew(`Content is not an array: ${content}`);
290
+ }
291
+ },
292
+ () => {
293
+ if (initialContent) {
294
+ setDefaultContent(initialContent);
295
+ }
296
+ },
297
+ );
293
298
  setStatus(0 /* Idle */);
294
299
  });
295
300
  }
@@ -298,29 +303,33 @@ const createCustomPersister = (
298
303
  const startAutoLoad = async (initialContent) => {
299
304
  stopAutoLoad();
300
305
  await load(initialContent);
301
- try {
302
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
303
- if (changes || content) {
304
- /* istanbul ignore else */
305
- if (status != 2 /* Saving */) {
306
- setStatus(1 /* Loading */);
307
- loads++;
308
- setContentOrChanges(changes ?? content);
309
- setStatus(0 /* Idle */);
310
- }
311
- } else {
312
- await load();
313
- }
314
- });
315
- } catch (error) {
316
- /* istanbul ignore next */
317
- onIgnoredError?.(error);
318
- }
306
+ await tryCatch(
307
+ async () =>
308
+ (autoLoadHandle = await addPersisterListener(
309
+ async (content, changes) => {
310
+ if (changes || content) {
311
+ /* istanbul ignore else */
312
+ if (status != 2 /* Saving */) {
313
+ setStatus(1 /* Loading */);
314
+ loads++;
315
+ setContentOrChanges(changes ?? content);
316
+ setStatus(0 /* Idle */);
317
+ }
318
+ } else {
319
+ await load();
320
+ }
321
+ },
322
+ )),
323
+ onIgnoredError,
324
+ );
319
325
  return persister;
320
326
  };
321
- const stopAutoLoad = () => {
327
+ const stopAutoLoad = async () => {
322
328
  if (autoLoadHandle) {
323
- delPersisterListener(autoLoadHandle);
329
+ await tryCatch(
330
+ () => delPersisterListener(autoLoadHandle),
331
+ onIgnoredError,
332
+ );
324
333
  autoLoadHandle = void 0;
325
334
  }
326
335
  return persister;
@@ -332,12 +341,7 @@ const createCustomPersister = (
332
341
  setStatus(2 /* Saving */);
333
342
  saves++;
334
343
  await schedule(async () => {
335
- try {
336
- await setPersisted(getContent, changes);
337
- } catch (error) {
338
- /* istanbul ignore next */
339
- onIgnoredError?.(error);
340
- }
344
+ await tryCatch(() => setPersisted(getContent, changes), onIgnoredError);
341
345
  setStatus(0 /* Idle */);
342
346
  });
343
347
  }
@@ -354,7 +358,7 @@ const createCustomPersister = (
354
358
  });
355
359
  return persister;
356
360
  };
357
- const stopAutoSave = () => {
361
+ const stopAutoSave = async () => {
358
362
  if (autoSaveListenerId) {
359
363
  store.delListener(autoSaveListenerId);
360
364
  autoSaveListenerId = void 0;
@@ -375,9 +379,10 @@ const createCustomPersister = (
375
379
  return persister;
376
380
  };
377
381
  const getStore = () => store;
378
- const destroy = () => {
382
+ const destroy = async () => {
379
383
  arrayClear(mapGet(scheduleActions, scheduleId));
380
- return stopAutoLoad().stopAutoSave();
384
+ await persister.stopAutoLoad();
385
+ return await persister.stopAutoSave();
381
386
  };
382
387
  const getStats = () => ({loads, saves});
383
388
  const persister = {
@@ -15,6 +15,14 @@ const test = (regex, subject) => regex.test(subject);
15
15
  const errorNew = (message) => {
16
16
  throw new Error(message);
17
17
  };
18
+ const tryCatch = async (action, then1, then2) => {
19
+ try {
20
+ return await action();
21
+ } catch (error) {
22
+ /* istanbul ignore next */
23
+ then1?.(error);
24
+ }
25
+ };
18
26
 
19
27
  const arrayForEach = (array, cb) => array.forEach(cb);
20
28
  const arrayClear = (array, to) => array.splice(0, to);
@@ -250,12 +258,7 @@ const createCustomPersister = (
250
258
  while (
251
259
  !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
252
260
  ) {
253
- try {
254
- await action();
255
- } catch (error) {
256
- /* istanbul ignore next */
257
- onIgnoredError?.(error);
258
- }
261
+ await tryCatch(action, onIgnoredError);
259
262
  }
260
263
  mapSet(scheduleRunning, scheduleId, 0);
261
264
  }
@@ -275,21 +278,23 @@ const createCustomPersister = (
275
278
  setStatus(1 /* Loading */);
276
279
  loads++;
277
280
  await schedule(async () => {
278
- try {
279
- const content = await getPersisted();
280
- if (isArray(content)) {
281
- setContentOrChanges(content);
282
- } else if (initialContent) {
283
- setDefaultContent(initialContent);
284
- } else {
285
- errorNew(`Content is not an array: ${content}`);
286
- }
287
- } catch (error) {
288
- onIgnoredError?.(error);
289
- if (initialContent) {
290
- setDefaultContent(initialContent);
291
- }
292
- }
281
+ await tryCatch(
282
+ async () => {
283
+ const content = await getPersisted();
284
+ if (isArray(content)) {
285
+ setContentOrChanges(content);
286
+ } else if (initialContent) {
287
+ setDefaultContent(initialContent);
288
+ } else {
289
+ errorNew(`Content is not an array: ${content}`);
290
+ }
291
+ },
292
+ () => {
293
+ if (initialContent) {
294
+ setDefaultContent(initialContent);
295
+ }
296
+ },
297
+ );
293
298
  setStatus(0 /* Idle */);
294
299
  });
295
300
  }
@@ -298,29 +303,33 @@ const createCustomPersister = (
298
303
  const startAutoLoad = async (initialContent) => {
299
304
  stopAutoLoad();
300
305
  await load(initialContent);
301
- try {
302
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
303
- if (changes || content) {
304
- /* istanbul ignore else */
305
- if (status != 2 /* Saving */) {
306
- setStatus(1 /* Loading */);
307
- loads++;
308
- setContentOrChanges(changes ?? content);
309
- setStatus(0 /* Idle */);
310
- }
311
- } else {
312
- await load();
313
- }
314
- });
315
- } catch (error) {
316
- /* istanbul ignore next */
317
- onIgnoredError?.(error);
318
- }
306
+ await tryCatch(
307
+ async () =>
308
+ (autoLoadHandle = await addPersisterListener(
309
+ async (content, changes) => {
310
+ if (changes || content) {
311
+ /* istanbul ignore else */
312
+ if (status != 2 /* Saving */) {
313
+ setStatus(1 /* Loading */);
314
+ loads++;
315
+ setContentOrChanges(changes ?? content);
316
+ setStatus(0 /* Idle */);
317
+ }
318
+ } else {
319
+ await load();
320
+ }
321
+ },
322
+ )),
323
+ onIgnoredError,
324
+ );
319
325
  return persister;
320
326
  };
321
- const stopAutoLoad = () => {
327
+ const stopAutoLoad = async () => {
322
328
  if (autoLoadHandle) {
323
- delPersisterListener(autoLoadHandle);
329
+ await tryCatch(
330
+ () => delPersisterListener(autoLoadHandle),
331
+ onIgnoredError,
332
+ );
324
333
  autoLoadHandle = void 0;
325
334
  }
326
335
  return persister;
@@ -332,12 +341,7 @@ const createCustomPersister = (
332
341
  setStatus(2 /* Saving */);
333
342
  saves++;
334
343
  await schedule(async () => {
335
- try {
336
- await setPersisted(getContent, changes);
337
- } catch (error) {
338
- /* istanbul ignore next */
339
- onIgnoredError?.(error);
340
- }
344
+ await tryCatch(() => setPersisted(getContent, changes), onIgnoredError);
341
345
  setStatus(0 /* Idle */);
342
346
  });
343
347
  }
@@ -354,7 +358,7 @@ const createCustomPersister = (
354
358
  });
355
359
  return persister;
356
360
  };
357
- const stopAutoSave = () => {
361
+ const stopAutoSave = async () => {
358
362
  if (autoSaveListenerId) {
359
363
  store.delListener(autoSaveListenerId);
360
364
  autoSaveListenerId = void 0;
@@ -375,9 +379,10 @@ const createCustomPersister = (
375
379
  return persister;
376
380
  };
377
381
  const getStore = () => store;
378
- const destroy = () => {
382
+ const destroy = async () => {
379
383
  arrayClear(mapGet(scheduleActions, scheduleId));
380
- return stopAutoLoad().stopAutoSave();
384
+ await persister.stopAutoLoad();
385
+ return await persister.stopAutoSave();
381
386
  };
382
387
  const getStats = () => ({loads, saves});
383
388
  const persister = {