tinybase 6.1.0-beta.4 → 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 +82 -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 +3 -3
  29. package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +3 -3
  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 +86 -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 -1
  119. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  120. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  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 +8 -4
  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 +182 -135
  205. package/persisters/persister-sqlite-bun/with-schemas/index.js +182 -135
  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
@@ -14,6 +14,14 @@ const test = (regex, subject) => regex.test(subject);
14
14
  const errorNew = (message) => {
15
15
  throw new Error(message);
16
16
  };
17
+ const tryCatch = async (action, then1, then2) => {
18
+ try {
19
+ return await action();
20
+ } catch (error) {
21
+ /* istanbul ignore next */
22
+ then1?.(error);
23
+ }
24
+ };
17
25
 
18
26
  const arrayForEach = (array, cb) => array.forEach(cb);
19
27
  const arrayMap = (array, cb) => array.map(cb);
@@ -259,12 +267,7 @@ const createCustomPersister = (
259
267
  while (
260
268
  !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
261
269
  ) {
262
- try {
263
- await action();
264
- } catch (error) {
265
- /* istanbul ignore next */
266
- onIgnoredError?.(error);
267
- }
270
+ await tryCatch(action, onIgnoredError);
268
271
  }
269
272
  mapSet(scheduleRunning, scheduleId, 0);
270
273
  }
@@ -284,21 +287,23 @@ const createCustomPersister = (
284
287
  setStatus(1 /* Loading */);
285
288
  loads++;
286
289
  await schedule(async () => {
287
- try {
288
- const content = await getPersisted();
289
- if (isArray(content)) {
290
- setContentOrChanges(content);
291
- } else if (initialContent) {
292
- setDefaultContent(initialContent);
293
- } else {
294
- errorNew(`Content is not an array: ${content}`);
295
- }
296
- } catch (error) {
297
- onIgnoredError?.(error);
298
- if (initialContent) {
299
- setDefaultContent(initialContent);
300
- }
301
- }
290
+ await tryCatch(
291
+ async () => {
292
+ const content = await getPersisted();
293
+ if (isArray(content)) {
294
+ setContentOrChanges(content);
295
+ } else if (initialContent) {
296
+ setDefaultContent(initialContent);
297
+ } else {
298
+ errorNew(`Content is not an array: ${content}`);
299
+ }
300
+ },
301
+ () => {
302
+ if (initialContent) {
303
+ setDefaultContent(initialContent);
304
+ }
305
+ },
306
+ );
302
307
  setStatus(0 /* Idle */);
303
308
  });
304
309
  }
@@ -307,29 +312,33 @@ const createCustomPersister = (
307
312
  const startAutoLoad = async (initialContent) => {
308
313
  stopAutoLoad();
309
314
  await load(initialContent);
310
- try {
311
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
312
- if (changes || content) {
313
- /* istanbul ignore else */
314
- if (status != 2 /* Saving */) {
315
- setStatus(1 /* Loading */);
316
- loads++;
317
- setContentOrChanges(changes ?? content);
318
- setStatus(0 /* Idle */);
319
- }
320
- } else {
321
- await load();
322
- }
323
- });
324
- } catch (error) {
325
- /* istanbul ignore next */
326
- onIgnoredError?.(error);
327
- }
315
+ await tryCatch(
316
+ async () =>
317
+ (autoLoadHandle = await addPersisterListener(
318
+ async (content, changes) => {
319
+ if (changes || content) {
320
+ /* istanbul ignore else */
321
+ if (status != 2 /* Saving */) {
322
+ setStatus(1 /* Loading */);
323
+ loads++;
324
+ setContentOrChanges(changes ?? content);
325
+ setStatus(0 /* Idle */);
326
+ }
327
+ } else {
328
+ await load();
329
+ }
330
+ },
331
+ )),
332
+ onIgnoredError,
333
+ );
328
334
  return persister;
329
335
  };
330
- const stopAutoLoad = () => {
336
+ const stopAutoLoad = async () => {
331
337
  if (autoLoadHandle) {
332
- delPersisterListener(autoLoadHandle);
338
+ await tryCatch(
339
+ () => delPersisterListener(autoLoadHandle),
340
+ onIgnoredError,
341
+ );
333
342
  autoLoadHandle = void 0;
334
343
  }
335
344
  return persister;
@@ -341,12 +350,7 @@ const createCustomPersister = (
341
350
  setStatus(2 /* Saving */);
342
351
  saves++;
343
352
  await schedule(async () => {
344
- try {
345
- await setPersisted(getContent, changes);
346
- } catch (error) {
347
- /* istanbul ignore next */
348
- onIgnoredError?.(error);
349
- }
353
+ await tryCatch(() => setPersisted(getContent, changes), onIgnoredError);
350
354
  setStatus(0 /* Idle */);
351
355
  });
352
356
  }
@@ -363,7 +367,7 @@ const createCustomPersister = (
363
367
  });
364
368
  return persister;
365
369
  };
366
- const stopAutoSave = () => {
370
+ const stopAutoSave = async () => {
367
371
  if (autoSaveListenerId) {
368
372
  store.delListener(autoSaveListenerId);
369
373
  autoSaveListenerId = void 0;
@@ -384,9 +388,10 @@ const createCustomPersister = (
384
388
  return persister;
385
389
  };
386
390
  const getStore = () => store;
387
- const destroy = () => {
391
+ const destroy = async () => {
388
392
  arrayClear(mapGet(scheduleActions, scheduleId));
389
- return stopAutoLoad().stopAutoSave();
393
+ await persister.stopAutoLoad();
394
+ return await persister.stopAutoSave();
390
395
  };
391
396
  const getStats = () => ({loads, saves});
392
397
  const persister = {
@@ -14,6 +14,14 @@ const test = (regex, subject) => regex.test(subject);
14
14
  const errorNew = (message) => {
15
15
  throw new Error(message);
16
16
  };
17
+ const tryCatch = async (action, then1, then2) => {
18
+ try {
19
+ return await action();
20
+ } catch (error) {
21
+ /* istanbul ignore next */
22
+ then1?.(error);
23
+ }
24
+ };
17
25
 
18
26
  const arrayForEach = (array, cb) => array.forEach(cb);
19
27
  const arrayMap = (array, cb) => array.map(cb);
@@ -259,12 +267,7 @@ const createCustomPersister = (
259
267
  while (
260
268
  !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
261
269
  ) {
262
- try {
263
- await action();
264
- } catch (error) {
265
- /* istanbul ignore next */
266
- onIgnoredError?.(error);
267
- }
270
+ await tryCatch(action, onIgnoredError);
268
271
  }
269
272
  mapSet(scheduleRunning, scheduleId, 0);
270
273
  }
@@ -284,21 +287,23 @@ const createCustomPersister = (
284
287
  setStatus(1 /* Loading */);
285
288
  loads++;
286
289
  await schedule(async () => {
287
- try {
288
- const content = await getPersisted();
289
- if (isArray(content)) {
290
- setContentOrChanges(content);
291
- } else if (initialContent) {
292
- setDefaultContent(initialContent);
293
- } else {
294
- errorNew(`Content is not an array: ${content}`);
295
- }
296
- } catch (error) {
297
- onIgnoredError?.(error);
298
- if (initialContent) {
299
- setDefaultContent(initialContent);
300
- }
301
- }
290
+ await tryCatch(
291
+ async () => {
292
+ const content = await getPersisted();
293
+ if (isArray(content)) {
294
+ setContentOrChanges(content);
295
+ } else if (initialContent) {
296
+ setDefaultContent(initialContent);
297
+ } else {
298
+ errorNew(`Content is not an array: ${content}`);
299
+ }
300
+ },
301
+ () => {
302
+ if (initialContent) {
303
+ setDefaultContent(initialContent);
304
+ }
305
+ },
306
+ );
302
307
  setStatus(0 /* Idle */);
303
308
  });
304
309
  }
@@ -307,29 +312,33 @@ const createCustomPersister = (
307
312
  const startAutoLoad = async (initialContent) => {
308
313
  stopAutoLoad();
309
314
  await load(initialContent);
310
- try {
311
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
312
- if (changes || content) {
313
- /* istanbul ignore else */
314
- if (status != 2 /* Saving */) {
315
- setStatus(1 /* Loading */);
316
- loads++;
317
- setContentOrChanges(changes ?? content);
318
- setStatus(0 /* Idle */);
319
- }
320
- } else {
321
- await load();
322
- }
323
- });
324
- } catch (error) {
325
- /* istanbul ignore next */
326
- onIgnoredError?.(error);
327
- }
315
+ await tryCatch(
316
+ async () =>
317
+ (autoLoadHandle = await addPersisterListener(
318
+ async (content, changes) => {
319
+ if (changes || content) {
320
+ /* istanbul ignore else */
321
+ if (status != 2 /* Saving */) {
322
+ setStatus(1 /* Loading */);
323
+ loads++;
324
+ setContentOrChanges(changes ?? content);
325
+ setStatus(0 /* Idle */);
326
+ }
327
+ } else {
328
+ await load();
329
+ }
330
+ },
331
+ )),
332
+ onIgnoredError,
333
+ );
328
334
  return persister;
329
335
  };
330
- const stopAutoLoad = () => {
336
+ const stopAutoLoad = async () => {
331
337
  if (autoLoadHandle) {
332
- delPersisterListener(autoLoadHandle);
338
+ await tryCatch(
339
+ () => delPersisterListener(autoLoadHandle),
340
+ onIgnoredError,
341
+ );
333
342
  autoLoadHandle = void 0;
334
343
  }
335
344
  return persister;
@@ -341,12 +350,7 @@ const createCustomPersister = (
341
350
  setStatus(2 /* Saving */);
342
351
  saves++;
343
352
  await schedule(async () => {
344
- try {
345
- await setPersisted(getContent, changes);
346
- } catch (error) {
347
- /* istanbul ignore next */
348
- onIgnoredError?.(error);
349
- }
353
+ await tryCatch(() => setPersisted(getContent, changes), onIgnoredError);
350
354
  setStatus(0 /* Idle */);
351
355
  });
352
356
  }
@@ -363,7 +367,7 @@ const createCustomPersister = (
363
367
  });
364
368
  return persister;
365
369
  };
366
- const stopAutoSave = () => {
370
+ const stopAutoSave = async () => {
367
371
  if (autoSaveListenerId) {
368
372
  store.delListener(autoSaveListenerId);
369
373
  autoSaveListenerId = void 0;
@@ -384,9 +388,10 @@ const createCustomPersister = (
384
388
  return persister;
385
389
  };
386
390
  const getStore = () => store;
387
- const destroy = () => {
391
+ const destroy = async () => {
388
392
  arrayClear(mapGet(scheduleActions, scheduleId));
389
- return stopAutoLoad().stopAutoSave();
393
+ await persister.stopAutoLoad();
394
+ return await persister.stopAutoSave();
390
395
  };
391
396
  const getStats = () => ({loads, saves});
392
397
  const persister = {