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
@@ -16,6 +16,14 @@ const test = (regex, subject) => regex.test(subject);
16
16
  const errorNew = (message) => {
17
17
  throw new Error(message);
18
18
  };
19
+ const tryCatch = async (action, then1, then2) => {
20
+ try {
21
+ return await action();
22
+ } catch (error) {
23
+ /* istanbul ignore next */
24
+ then1?.(error);
25
+ }
26
+ };
19
27
 
20
28
  const arrayForEach = (array, cb) => array.forEach(cb);
21
29
  const arrayClear = (array, to) => array.splice(0, to);
@@ -251,12 +259,7 @@ const createCustomPersister = (
251
259
  while (
252
260
  !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
253
261
  ) {
254
- try {
255
- await action();
256
- } catch (error) {
257
- /* istanbul ignore next */
258
- onIgnoredError?.(error);
259
- }
262
+ await tryCatch(action, onIgnoredError);
260
263
  }
261
264
  mapSet(scheduleRunning, scheduleId, 0);
262
265
  }
@@ -276,21 +279,23 @@ const createCustomPersister = (
276
279
  setStatus(1 /* Loading */);
277
280
  loads++;
278
281
  await schedule(async () => {
279
- try {
280
- const content = await getPersisted();
281
- if (isArray(content)) {
282
- setContentOrChanges(content);
283
- } else if (initialContent) {
284
- setDefaultContent(initialContent);
285
- } else {
286
- errorNew(`Content is not an array: ${content}`);
287
- }
288
- } catch (error) {
289
- onIgnoredError?.(error);
290
- if (initialContent) {
291
- setDefaultContent(initialContent);
292
- }
293
- }
282
+ await tryCatch(
283
+ async () => {
284
+ const content = await getPersisted();
285
+ if (isArray(content)) {
286
+ setContentOrChanges(content);
287
+ } else if (initialContent) {
288
+ setDefaultContent(initialContent);
289
+ } else {
290
+ errorNew(`Content is not an array: ${content}`);
291
+ }
292
+ },
293
+ () => {
294
+ if (initialContent) {
295
+ setDefaultContent(initialContent);
296
+ }
297
+ },
298
+ );
294
299
  setStatus(0 /* Idle */);
295
300
  });
296
301
  }
@@ -299,29 +304,33 @@ const createCustomPersister = (
299
304
  const startAutoLoad = async (initialContent) => {
300
305
  stopAutoLoad();
301
306
  await load(initialContent);
302
- try {
303
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
304
- if (changes || content) {
305
- /* istanbul ignore else */
306
- if (status != 2 /* Saving */) {
307
- setStatus(1 /* Loading */);
308
- loads++;
309
- setContentOrChanges(changes ?? content);
310
- setStatus(0 /* Idle */);
311
- }
312
- } else {
313
- await load();
314
- }
315
- });
316
- } catch (error) {
317
- /* istanbul ignore next */
318
- onIgnoredError?.(error);
319
- }
307
+ await tryCatch(
308
+ async () =>
309
+ (autoLoadHandle = await addPersisterListener(
310
+ async (content, changes) => {
311
+ if (changes || content) {
312
+ /* istanbul ignore else */
313
+ if (status != 2 /* Saving */) {
314
+ setStatus(1 /* Loading */);
315
+ loads++;
316
+ setContentOrChanges(changes ?? content);
317
+ setStatus(0 /* Idle */);
318
+ }
319
+ } else {
320
+ await load();
321
+ }
322
+ },
323
+ )),
324
+ onIgnoredError,
325
+ );
320
326
  return persister;
321
327
  };
322
- const stopAutoLoad = () => {
328
+ const stopAutoLoad = async () => {
323
329
  if (autoLoadHandle) {
324
- delPersisterListener(autoLoadHandle);
330
+ await tryCatch(
331
+ () => delPersisterListener(autoLoadHandle),
332
+ onIgnoredError,
333
+ );
325
334
  autoLoadHandle = void 0;
326
335
  }
327
336
  return persister;
@@ -333,12 +342,7 @@ const createCustomPersister = (
333
342
  setStatus(2 /* Saving */);
334
343
  saves++;
335
344
  await schedule(async () => {
336
- try {
337
- await setPersisted(getContent, changes);
338
- } catch (error) {
339
- /* istanbul ignore next */
340
- onIgnoredError?.(error);
341
- }
345
+ await tryCatch(() => setPersisted(getContent, changes), onIgnoredError);
342
346
  setStatus(0 /* Idle */);
343
347
  });
344
348
  }
@@ -355,7 +359,7 @@ const createCustomPersister = (
355
359
  });
356
360
  return persister;
357
361
  };
358
- const stopAutoSave = () => {
362
+ const stopAutoSave = async () => {
359
363
  if (autoSaveListenerId) {
360
364
  store.delListener(autoSaveListenerId);
361
365
  autoSaveListenerId = void 0;
@@ -376,9 +380,10 @@ const createCustomPersister = (
376
380
  return persister;
377
381
  };
378
382
  const getStore = () => store;
379
- const destroy = () => {
383
+ const destroy = async () => {
380
384
  arrayClear(mapGet(scheduleActions, scheduleId));
381
- return stopAutoLoad().stopAutoSave();
385
+ await persister.stopAutoLoad();
386
+ return await persister.stopAutoSave();
382
387
  };
383
388
  const getStats = () => ({loads, saves});
384
389
  const persister = {
@@ -450,7 +455,7 @@ const createPartyKitPersister = (
450
455
  cache: 'no-store',
451
456
  })
452
457
  ).json();
453
- const getPersisted = async () => await getOrSetStore();
458
+ const getPersisted = getOrSetStore;
454
459
  const setPersisted = async (getContent, changes) => {
455
460
  if (changes) {
456
461
  connection.send(construct(messagePrefix, SET_CHANGES, changes));
@@ -16,6 +16,14 @@ const test = (regex, subject) => regex.test(subject);
16
16
  const errorNew = (message) => {
17
17
  throw new Error(message);
18
18
  };
19
+ const tryCatch = async (action, then1, then2) => {
20
+ try {
21
+ return await action();
22
+ } catch (error) {
23
+ /* istanbul ignore next */
24
+ then1?.(error);
25
+ }
26
+ };
19
27
 
20
28
  const arrayForEach = (array, cb) => array.forEach(cb);
21
29
  const arrayClear = (array, to) => array.splice(0, to);
@@ -251,12 +259,7 @@ const createCustomPersister = (
251
259
  while (
252
260
  !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
253
261
  ) {
254
- try {
255
- await action();
256
- } catch (error) {
257
- /* istanbul ignore next */
258
- onIgnoredError?.(error);
259
- }
262
+ await tryCatch(action, onIgnoredError);
260
263
  }
261
264
  mapSet(scheduleRunning, scheduleId, 0);
262
265
  }
@@ -276,21 +279,23 @@ const createCustomPersister = (
276
279
  setStatus(1 /* Loading */);
277
280
  loads++;
278
281
  await schedule(async () => {
279
- try {
280
- const content = await getPersisted();
281
- if (isArray(content)) {
282
- setContentOrChanges(content);
283
- } else if (initialContent) {
284
- setDefaultContent(initialContent);
285
- } else {
286
- errorNew(`Content is not an array: ${content}`);
287
- }
288
- } catch (error) {
289
- onIgnoredError?.(error);
290
- if (initialContent) {
291
- setDefaultContent(initialContent);
292
- }
293
- }
282
+ await tryCatch(
283
+ async () => {
284
+ const content = await getPersisted();
285
+ if (isArray(content)) {
286
+ setContentOrChanges(content);
287
+ } else if (initialContent) {
288
+ setDefaultContent(initialContent);
289
+ } else {
290
+ errorNew(`Content is not an array: ${content}`);
291
+ }
292
+ },
293
+ () => {
294
+ if (initialContent) {
295
+ setDefaultContent(initialContent);
296
+ }
297
+ },
298
+ );
294
299
  setStatus(0 /* Idle */);
295
300
  });
296
301
  }
@@ -299,29 +304,33 @@ const createCustomPersister = (
299
304
  const startAutoLoad = async (initialContent) => {
300
305
  stopAutoLoad();
301
306
  await load(initialContent);
302
- try {
303
- autoLoadHandle = await addPersisterListener(async (content, changes) => {
304
- if (changes || content) {
305
- /* istanbul ignore else */
306
- if (status != 2 /* Saving */) {
307
- setStatus(1 /* Loading */);
308
- loads++;
309
- setContentOrChanges(changes ?? content);
310
- setStatus(0 /* Idle */);
311
- }
312
- } else {
313
- await load();
314
- }
315
- });
316
- } catch (error) {
317
- /* istanbul ignore next */
318
- onIgnoredError?.(error);
319
- }
307
+ await tryCatch(
308
+ async () =>
309
+ (autoLoadHandle = await addPersisterListener(
310
+ async (content, changes) => {
311
+ if (changes || content) {
312
+ /* istanbul ignore else */
313
+ if (status != 2 /* Saving */) {
314
+ setStatus(1 /* Loading */);
315
+ loads++;
316
+ setContentOrChanges(changes ?? content);
317
+ setStatus(0 /* Idle */);
318
+ }
319
+ } else {
320
+ await load();
321
+ }
322
+ },
323
+ )),
324
+ onIgnoredError,
325
+ );
320
326
  return persister;
321
327
  };
322
- const stopAutoLoad = () => {
328
+ const stopAutoLoad = async () => {
323
329
  if (autoLoadHandle) {
324
- delPersisterListener(autoLoadHandle);
330
+ await tryCatch(
331
+ () => delPersisterListener(autoLoadHandle),
332
+ onIgnoredError,
333
+ );
325
334
  autoLoadHandle = void 0;
326
335
  }
327
336
  return persister;
@@ -333,12 +342,7 @@ const createCustomPersister = (
333
342
  setStatus(2 /* Saving */);
334
343
  saves++;
335
344
  await schedule(async () => {
336
- try {
337
- await setPersisted(getContent, changes);
338
- } catch (error) {
339
- /* istanbul ignore next */
340
- onIgnoredError?.(error);
341
- }
345
+ await tryCatch(() => setPersisted(getContent, changes), onIgnoredError);
342
346
  setStatus(0 /* Idle */);
343
347
  });
344
348
  }
@@ -355,7 +359,7 @@ const createCustomPersister = (
355
359
  });
356
360
  return persister;
357
361
  };
358
- const stopAutoSave = () => {
362
+ const stopAutoSave = async () => {
359
363
  if (autoSaveListenerId) {
360
364
  store.delListener(autoSaveListenerId);
361
365
  autoSaveListenerId = void 0;
@@ -376,9 +380,10 @@ const createCustomPersister = (
376
380
  return persister;
377
381
  };
378
382
  const getStore = () => store;
379
- const destroy = () => {
383
+ const destroy = async () => {
380
384
  arrayClear(mapGet(scheduleActions, scheduleId));
381
- return stopAutoLoad().stopAutoSave();
385
+ await persister.stopAutoLoad();
386
+ return await persister.stopAutoSave();
382
387
  };
383
388
  const getStats = () => ({loads, saves});
384
389
  const persister = {
@@ -450,7 +455,7 @@ const createPartyKitPersister = (
450
455
  cache: 'no-store',
451
456
  })
452
457
  ).json();
453
- const getPersisted = async () => await getOrSetStore();
458
+ const getPersisted = getOrSetStore;
454
459
  const setPersisted = async (getContent, changes) => {
455
460
  if (changes) {
456
461
  connection.send(construct(messagePrefix, SET_CHANGES, changes));