@legendapp/state 3.0.0-alpha.1 → 3.0.0-alpha.3

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 (327) hide show
  1. package/.DS_Store +0 -0
  2. package/CHANGELOG.md +1 -831
  3. package/LICENSE +1 -21
  4. package/README.md +1 -141
  5. package/as/arrayAsRecord.d.mts +5 -0
  6. package/as/arrayAsRecord.d.ts +5 -0
  7. package/as/arrayAsRecord.js +28 -0
  8. package/as/arrayAsRecord.mjs +26 -0
  9. package/as/arrayAsSet.d.mts +5 -0
  10. package/as/arrayAsSet.d.ts +5 -0
  11. package/as/arrayAsSet.js +13 -0
  12. package/as/arrayAsSet.mjs +11 -0
  13. package/as/arrayAsString.d.mts +5 -0
  14. package/as/arrayAsString.d.ts +5 -0
  15. package/as/arrayAsString.js +13 -0
  16. package/as/arrayAsString.mjs +11 -0
  17. package/as/numberAsString.d.mts +5 -0
  18. package/as/numberAsString.d.ts +5 -0
  19. package/as/numberAsString.js +13 -0
  20. package/as/numberAsString.mjs +11 -0
  21. package/as/recordAsArray.d.mts +5 -0
  22. package/as/recordAsArray.d.ts +5 -0
  23. package/as/recordAsArray.js +25 -0
  24. package/as/recordAsArray.mjs +23 -0
  25. package/as/recordAsString.d.mts +5 -0
  26. package/as/recordAsString.d.ts +5 -0
  27. package/as/recordAsString.js +13 -0
  28. package/as/recordAsString.mjs +11 -0
  29. package/as/setAsArray.d.mts +5 -0
  30. package/as/setAsArray.d.ts +5 -0
  31. package/as/setAsArray.js +13 -0
  32. package/as/setAsArray.mjs +11 -0
  33. package/as/setAsString.d.mts +5 -0
  34. package/as/setAsString.d.ts +5 -0
  35. package/as/setAsString.js +13 -0
  36. package/as/setAsString.mjs +11 -0
  37. package/as/stringAsArray.d.mts +5 -0
  38. package/as/stringAsArray.d.ts +5 -0
  39. package/as/stringAsArray.js +13 -0
  40. package/as/stringAsArray.mjs +11 -0
  41. package/as/stringAsNumber.d.mts +5 -0
  42. package/as/stringAsNumber.d.ts +5 -0
  43. package/as/stringAsNumber.js +16 -0
  44. package/as/stringAsNumber.mjs +14 -0
  45. package/as/stringAsRecord.d.mts +5 -0
  46. package/as/stringAsRecord.d.ts +5 -0
  47. package/as/stringAsRecord.js +15 -0
  48. package/as/stringAsRecord.mjs +13 -0
  49. package/as/stringAsSet.d.mts +5 -0
  50. package/as/stringAsSet.d.ts +5 -0
  51. package/as/stringAsSet.js +13 -0
  52. package/as/stringAsSet.mjs +11 -0
  53. package/babel.d.mts +21 -0
  54. package/babel.d.ts +21 -2
  55. package/babel.js +57 -53
  56. package/babel.mjs +65 -0
  57. package/config/enable$GetSet.js +13 -14
  58. package/config/enable$GetSet.mjs +13 -14
  59. package/config/enableReactComponents.d.mts +9 -0
  60. package/config/enableReactComponents.d.ts +4 -2
  61. package/config/enableReactComponents.js +13 -10
  62. package/config/enableReactComponents.mjs +13 -10
  63. package/config/enableReactNativeComponents.d.mts +22 -0
  64. package/config/enableReactNativeComponents.d.ts +6 -4
  65. package/config/enableReactNativeComponents.js +43 -47
  66. package/config/enableReactNativeComponents.mjs +43 -47
  67. package/config/enableReactTracking.d.mts +7 -0
  68. package/config/enableReactTracking.d.ts +3 -2
  69. package/config/enableReactTracking.js +33 -38
  70. package/config/enableReactTracking.mjs +33 -38
  71. package/config/enableReactUse.d.mts +10 -0
  72. package/config/enableReactUse.d.ts +4 -1
  73. package/config/enableReactUse.js +15 -14
  74. package/config/enableReactUse.mjs +15 -14
  75. package/config/{enable$GetSet.d.ts → enable_GetSet.d.mts} +4 -2
  76. package/config/enable_GetSet.d.ts +10 -0
  77. package/config/enable_PeekAssign.d.mts +10 -0
  78. package/config/enable_PeekAssign.d.ts +4 -2
  79. package/config/enable_PeekAssign.js +13 -14
  80. package/config/enable_PeekAssign.mjs +13 -14
  81. package/helpers/pageHash.d.mts +9 -0
  82. package/helpers/pageHash.d.ts +2 -0
  83. package/helpers/pageHash.js +25 -30
  84. package/helpers/pageHash.mjs +25 -30
  85. package/helpers/pageHashParams.d.mts +9 -0
  86. package/helpers/pageHashParams.d.ts +2 -0
  87. package/helpers/pageHashParams.js +34 -37
  88. package/helpers/pageHashParams.mjs +34 -37
  89. package/helpers/time.d.mts +6 -0
  90. package/helpers/time.d.ts +6 -3
  91. package/helpers/time.js +17 -17
  92. package/helpers/time.mjs +17 -17
  93. package/helpers/trackHistory.d.mts +6 -0
  94. package/helpers/trackHistory.d.ts +4 -2
  95. package/helpers/trackHistory.js +13 -16
  96. package/helpers/trackHistory.mjs +13 -16
  97. package/helpers/undoRedo.d.mts +37 -0
  98. package/helpers/undoRedo.d.ts +5 -3
  99. package/helpers/undoRedo.js +59 -94
  100. package/helpers/undoRedo.mjs +59 -94
  101. package/index.d.mts +404 -0
  102. package/index.d.ts +371 -28
  103. package/index.js +2015 -2166
  104. package/index.mjs +2015 -2166
  105. package/package.json +254 -195
  106. package/persist-plugins/async-storage.d.mts +18 -0
  107. package/persist-plugins/async-storage.d.ts +6 -3
  108. package/persist-plugins/async-storage.js +79 -86
  109. package/persist-plugins/async-storage.mjs +79 -86
  110. package/persist-plugins/indexeddb.d.mts +29 -0
  111. package/persist-plugins/indexeddb.d.ts +6 -3
  112. package/persist-plugins/indexeddb.js +331 -352
  113. package/persist-plugins/indexeddb.mjs +331 -352
  114. package/persist-plugins/local-storage.d.mts +23 -0
  115. package/persist-plugins/local-storage.d.ts +8 -5
  116. package/persist-plugins/local-storage.js +74 -76
  117. package/persist-plugins/local-storage.mjs +74 -76
  118. package/persist-plugins/mmkv.d.mts +18 -0
  119. package/persist-plugins/mmkv.d.ts +6 -3
  120. package/persist-plugins/mmkv.js +82 -86
  121. package/persist-plugins/mmkv.mjs +82 -86
  122. package/react-hooks/createObservableHook.d.mts +5 -0
  123. package/react-hooks/createObservableHook.d.ts +4 -1
  124. package/react-hooks/createObservableHook.js +29 -30
  125. package/react-hooks/createObservableHook.mjs +25 -30
  126. package/react-hooks/useHover.d.mts +5 -0
  127. package/react-hooks/useHover.d.ts +5 -3
  128. package/react-hooks/useHover.js +29 -29
  129. package/react-hooks/useHover.mjs +29 -29
  130. package/react-hooks/useMeasure.d.mts +9 -0
  131. package/react-hooks/useMeasure.d.ts +5 -2
  132. package/react-hooks/useMeasure.js +30 -32
  133. package/react-hooks/useMeasure.mjs +30 -32
  134. package/react-hooks/useObservableNextRouter.d.mts +35 -0
  135. package/react-hooks/useObservableNextRouter.d.ts +9 -7
  136. package/react-hooks/useObservableNextRouter.js +64 -77
  137. package/react-hooks/useObservableNextRouter.mjs +60 -77
  138. package/react.d.mts +157 -0
  139. package/react.d.ts +157 -21
  140. package/react.js +458 -749
  141. package/react.mjs +457 -752
  142. package/sync-plugins/crud.d.mts +54 -0
  143. package/sync-plugins/crud.d.ts +12 -10
  144. package/sync-plugins/crud.js +253 -270
  145. package/sync-plugins/crud.mjs +253 -270
  146. package/sync-plugins/fetch.d.mts +21 -0
  147. package/sync-plugins/fetch.d.ts +7 -4
  148. package/sync-plugins/fetch.js +50 -37
  149. package/sync-plugins/fetch.mjs +50 -37
  150. package/sync-plugins/keel.d.mts +108 -0
  151. package/sync-plugins/keel.d.ts +17 -15
  152. package/sync-plugins/keel.js +229 -462
  153. package/sync-plugins/keel.mjs +227 -464
  154. package/sync-plugins/supabase.d.mts +39 -0
  155. package/sync-plugins/supabase.d.ts +16 -14
  156. package/sync-plugins/supabase.js +128 -128
  157. package/sync-plugins/supabase.mjs +128 -128
  158. package/sync-plugins/tanstack-query.d.mts +14 -0
  159. package/sync-plugins/tanstack-query.d.ts +7 -4
  160. package/sync-plugins/tanstack-query.js +51 -57
  161. package/sync-plugins/tanstack-query.mjs +51 -57
  162. package/sync-plugins/tanstack-react-query.d.mts +8 -0
  163. package/sync-plugins/tanstack-react-query.d.ts +6 -1
  164. package/sync-plugins/tanstack-react-query.js +2 -2
  165. package/sync-plugins/tanstack-react-query.mjs +2 -2
  166. package/sync.d.mts +351 -0
  167. package/sync.d.ts +349 -9
  168. package/sync.js +910 -964
  169. package/sync.mjs +920 -974
  170. package/trace.d.mts +9 -0
  171. package/trace.d.ts +9 -4
  172. package/trace.js +72 -62
  173. package/trace.mjs +72 -62
  174. package/types/babel.d.ts +1 -12
  175. package/babel.js.map +0 -1
  176. package/config/enable$GetSet.js.map +0 -1
  177. package/config/enable$GetSet.mjs.map +0 -1
  178. package/config/enableReactComponents.js.map +0 -1
  179. package/config/enableReactComponents.mjs.map +0 -1
  180. package/config/enableReactNativeComponents.js.map +0 -1
  181. package/config/enableReactNativeComponents.mjs.map +0 -1
  182. package/config/enableReactTracking.js.map +0 -1
  183. package/config/enableReactTracking.mjs.map +0 -1
  184. package/config/enableReactUse.js.map +0 -1
  185. package/config/enableReactUse.mjs.map +0 -1
  186. package/config/enable_PeekAssign.js.map +0 -1
  187. package/config/enable_PeekAssign.mjs.map +0 -1
  188. package/helpers/pageHash.js.map +0 -1
  189. package/helpers/pageHash.mjs.map +0 -1
  190. package/helpers/pageHashParams.js.map +0 -1
  191. package/helpers/pageHashParams.mjs.map +0 -1
  192. package/helpers/time.js.map +0 -1
  193. package/helpers/time.mjs.map +0 -1
  194. package/helpers/trackHistory.js.map +0 -1
  195. package/helpers/trackHistory.mjs.map +0 -1
  196. package/helpers/undoRedo.js.map +0 -1
  197. package/helpers/undoRedo.mjs.map +0 -1
  198. package/history.d.ts +0 -1
  199. package/history.js +0 -24
  200. package/history.js.map +0 -1
  201. package/history.mjs +0 -22
  202. package/history.mjs.map +0 -1
  203. package/index.js.map +0 -1
  204. package/index.mjs.map +0 -1
  205. package/persist-plugins/async-storage.js.map +0 -1
  206. package/persist-plugins/async-storage.mjs.map +0 -1
  207. package/persist-plugins/indexeddb.js.map +0 -1
  208. package/persist-plugins/indexeddb.mjs.map +0 -1
  209. package/persist-plugins/local-storage.js.map +0 -1
  210. package/persist-plugins/local-storage.mjs.map +0 -1
  211. package/persist-plugins/mmkv.js.map +0 -1
  212. package/persist-plugins/mmkv.mjs.map +0 -1
  213. package/react-hooks/createObservableHook.js.map +0 -1
  214. package/react-hooks/createObservableHook.mjs.map +0 -1
  215. package/react-hooks/useHover.js.map +0 -1
  216. package/react-hooks/useHover.mjs.map +0 -1
  217. package/react-hooks/useMeasure.js.map +0 -1
  218. package/react-hooks/useMeasure.mjs.map +0 -1
  219. package/react-hooks/useObservableNextRouter.js.map +0 -1
  220. package/react-hooks/useObservableNextRouter.mjs.map +0 -1
  221. package/react.js.map +0 -1
  222. package/react.mjs.map +0 -1
  223. package/src/ObservableObject.ts +0 -1350
  224. package/src/ObservablePrimitive.ts +0 -62
  225. package/src/babel/index.ts +0 -83
  226. package/src/batching.ts +0 -357
  227. package/src/computed.ts +0 -18
  228. package/src/config/enable$GetSet.ts +0 -30
  229. package/src/config/enableReactComponents.ts +0 -26
  230. package/src/config/enableReactNativeComponents.ts +0 -102
  231. package/src/config/enableReactTracking.ts +0 -62
  232. package/src/config/enableReactUse.ts +0 -32
  233. package/src/config/enable_PeekAssign.ts +0 -31
  234. package/src/config.ts +0 -47
  235. package/src/createObservable.ts +0 -47
  236. package/src/event.ts +0 -26
  237. package/src/globals.ts +0 -235
  238. package/src/helpers/pageHash.ts +0 -41
  239. package/src/helpers/pageHashParams.ts +0 -55
  240. package/src/helpers/time.ts +0 -30
  241. package/src/helpers/trackHistory.ts +0 -29
  242. package/src/helpers/undoRedo.ts +0 -111
  243. package/src/helpers.ts +0 -231
  244. package/src/is.ts +0 -63
  245. package/src/linked.ts +0 -17
  246. package/src/observable.ts +0 -32
  247. package/src/observableInterfaces.ts +0 -151
  248. package/src/observableTypes.ts +0 -232
  249. package/src/observe.ts +0 -89
  250. package/src/old-plugins/firebase.ts +0 -1053
  251. package/src/onChange.ts +0 -146
  252. package/src/persist/configureObservablePersistence.ts +0 -7
  253. package/src/persist/fieldTransformer.ts +0 -149
  254. package/src/persist/observablePersistRemoteFunctionsAdapter.ts +0 -39
  255. package/src/persist/persistObservable.ts +0 -1034
  256. package/src/persist-plugins/async-storage.ts +0 -99
  257. package/src/persist-plugins/indexeddb.ts +0 -439
  258. package/src/persist-plugins/local-storage.ts +0 -86
  259. package/src/persist-plugins/mmkv.ts +0 -91
  260. package/src/proxy.ts +0 -28
  261. package/src/react/Computed.tsx +0 -8
  262. package/src/react/For.tsx +0 -116
  263. package/src/react/Memo.tsx +0 -4
  264. package/src/react/Reactive.tsx +0 -53
  265. package/src/react/Show.tsx +0 -33
  266. package/src/react/Switch.tsx +0 -43
  267. package/src/react/react-globals.ts +0 -3
  268. package/src/react/reactInterfaces.ts +0 -32
  269. package/src/react/reactive-observer.tsx +0 -210
  270. package/src/react/useComputed.ts +0 -36
  271. package/src/react/useEffectOnce.ts +0 -41
  272. package/src/react/useIsMounted.ts +0 -16
  273. package/src/react/useMount.ts +0 -15
  274. package/src/react/useObservable.ts +0 -24
  275. package/src/react/useObservableReducer.ts +0 -52
  276. package/src/react/useObservableState.ts +0 -30
  277. package/src/react/useObserve.ts +0 -54
  278. package/src/react/useObserveEffect.ts +0 -40
  279. package/src/react/usePauseProvider.tsx +0 -16
  280. package/src/react/useSelector.ts +0 -167
  281. package/src/react/useUnmount.ts +0 -8
  282. package/src/react/useWhen.ts +0 -9
  283. package/src/react-hooks/createObservableHook.ts +0 -53
  284. package/src/react-hooks/useHover.ts +0 -40
  285. package/src/react-hooks/useMeasure.ts +0 -48
  286. package/src/react-hooks/useObservableNextRouter.ts +0 -137
  287. package/src/retry.ts +0 -71
  288. package/src/setupTracking.ts +0 -26
  289. package/src/sync/activateSyncedNode.ts +0 -128
  290. package/src/sync/configureObservableSync.ts +0 -7
  291. package/src/sync/persistTypes.ts +0 -216
  292. package/src/sync/syncHelpers.ts +0 -180
  293. package/src/sync/syncObservable.ts +0 -1056
  294. package/src/sync/syncObservableAdapter.ts +0 -31
  295. package/src/sync/syncTypes.ts +0 -189
  296. package/src/sync/synced.ts +0 -21
  297. package/src/sync-plugins/crud.ts +0 -412
  298. package/src/sync-plugins/fetch.ts +0 -80
  299. package/src/sync-plugins/keel.ts +0 -495
  300. package/src/sync-plugins/supabase.ts +0 -249
  301. package/src/sync-plugins/tanstack-query.ts +0 -113
  302. package/src/sync-plugins/tanstack-react-query.ts +0 -12
  303. package/src/trace/traceHelpers.ts +0 -11
  304. package/src/trace/useTraceListeners.ts +0 -34
  305. package/src/trace/useTraceUpdates.ts +0 -24
  306. package/src/trace/useVerifyNotTracking.ts +0 -33
  307. package/src/trace/useVerifyOneRender.ts +0 -10
  308. package/src/trackSelector.ts +0 -52
  309. package/src/tracking.ts +0 -43
  310. package/src/types/babel.d.ts +0 -12
  311. package/src/when.ts +0 -75
  312. package/sync-plugins/crud.js.map +0 -1
  313. package/sync-plugins/crud.mjs.map +0 -1
  314. package/sync-plugins/fetch.js.map +0 -1
  315. package/sync-plugins/fetch.mjs.map +0 -1
  316. package/sync-plugins/keel.js.map +0 -1
  317. package/sync-plugins/keel.mjs.map +0 -1
  318. package/sync-plugins/supabase.js.map +0 -1
  319. package/sync-plugins/supabase.mjs.map +0 -1
  320. package/sync-plugins/tanstack-query.js.map +0 -1
  321. package/sync-plugins/tanstack-query.mjs.map +0 -1
  322. package/sync-plugins/tanstack-react-query.js.map +0 -1
  323. package/sync-plugins/tanstack-react-query.mjs.map +0 -1
  324. package/sync.js.map +0 -1
  325. package/sync.mjs.map +0 -1
  326. package/trace.js.map +0 -1
  327. package/trace.mjs.map +0 -1
@@ -2,97 +2,90 @@
2
2
 
3
3
  var state = require('@legendapp/state');
4
4
 
5
- const MetadataSuffix = '__m';
6
- let AsyncStorage;
7
- const { safeParse, safeStringify } = state.internal;
8
- class ObservablePersistAsyncStorage {
9
- constructor() {
10
- this.data = {};
11
- }
12
- // Init
13
- async initialize(config) {
14
- let tables = [];
15
- const storageConfig = config.asyncStorage;
16
- if (storageConfig) {
17
- AsyncStorage = storageConfig.AsyncStorage;
18
- const { preload } = storageConfig;
19
- try {
20
- if (preload === true) {
21
- // If preloadAllKeys, load all keys and preload tables on startup
22
- tables = await AsyncStorage.getAllKeys();
23
- }
24
- else if (state.isArray(preload)) {
25
- // If preloadKeys, preload load the tables on startup
26
- tables = preload;
27
- }
28
- if (tables) {
29
- const values = await AsyncStorage.multiGet(tables);
30
- values.forEach(([table, value]) => {
31
- this.data[table] = value ? safeParse(value) : undefined;
32
- });
33
- }
34
- }
35
- catch (e) {
36
- console.error('[legend-state] ObservablePersistAsyncStorage failed to initialize', e);
37
- }
38
- }
39
- else {
40
- console.error('[legend-state] Missing asyncStorage configuration');
5
+ // src/persist-plugins/async-storage.ts
6
+ var MetadataSuffix = "__m";
7
+ var AsyncStorage;
8
+ var { safeParse, safeStringify } = state.internal;
9
+ var ObservablePersistAsyncStorage = class {
10
+ constructor() {
11
+ this.data = {};
12
+ }
13
+ // Init
14
+ async initialize(config) {
15
+ let tables = [];
16
+ const storageConfig = config.asyncStorage;
17
+ if (storageConfig) {
18
+ AsyncStorage = storageConfig.AsyncStorage;
19
+ const { preload } = storageConfig;
20
+ try {
21
+ if (preload === true) {
22
+ tables = await AsyncStorage.getAllKeys();
23
+ } else if (state.isArray(preload)) {
24
+ tables = preload;
41
25
  }
42
- }
43
- loadTable(table) {
44
- if (this.data[table] === undefined) {
45
- try {
46
- return (async () => {
47
- const value = await AsyncStorage.getItem(table);
48
- this.data[table] = value ? safeParse(value) : undefined;
49
- })();
50
- }
51
- catch (_a) {
52
- console.error('[legend-state] ObservablePersistLocalAsyncStorage failed to parse', table);
53
- }
26
+ if (tables) {
27
+ const values = await AsyncStorage.multiGet(tables);
28
+ values.forEach(([table, value]) => {
29
+ this.data[table] = value ? safeParse(value) : void 0;
30
+ });
54
31
  }
32
+ } catch (e) {
33
+ console.error("[legend-state] ObservablePersistAsyncStorage failed to initialize", e);
34
+ }
35
+ } else {
36
+ console.error("[legend-state] Missing asyncStorage configuration");
55
37
  }
56
- // Gets
57
- getTable(table, init) {
58
- var _a, _b;
59
- return (_b = (_a = this.data[table]) !== null && _a !== void 0 ? _a : init) !== null && _b !== void 0 ? _b : {};
60
- }
61
- getMetadata(table) {
62
- return this.getTable(table + MetadataSuffix, {});
63
- }
64
- // Sets
65
- set(table, changes) {
66
- if (!this.data[table]) {
67
- this.data[table] = {};
68
- }
69
- this.data[table] = state.applyChanges(this.data[table], changes);
70
- return this.save(table);
38
+ }
39
+ loadTable(table) {
40
+ if (this.data[table] === void 0) {
41
+ try {
42
+ return (async () => {
43
+ const value = await AsyncStorage.getItem(table);
44
+ this.data[table] = value ? safeParse(value) : void 0;
45
+ })();
46
+ } catch (e) {
47
+ console.error("[legend-state] ObservablePersistLocalAsyncStorage failed to parse", table);
48
+ }
71
49
  }
72
- setMetadata(table, metadata) {
73
- return this.setValue(table + MetadataSuffix, metadata);
50
+ }
51
+ // Gets
52
+ getTable(table, init) {
53
+ var _a, _b;
54
+ return (_b = (_a = this.data[table]) != null ? _a : init) != null ? _b : {};
55
+ }
56
+ getMetadata(table) {
57
+ return this.getTable(table + MetadataSuffix, {});
58
+ }
59
+ // Sets
60
+ set(table, changes) {
61
+ if (!this.data[table]) {
62
+ this.data[table] = {};
74
63
  }
75
- async deleteTable(table) {
76
- return AsyncStorage.removeItem(table);
77
- }
78
- deleteMetadata(table) {
79
- return this.deleteTable(table + MetadataSuffix);
80
- }
81
- // Private
82
- async setValue(table, value) {
83
- this.data[table] = value;
84
- await this.save(table);
85
- }
86
- async save(table) {
87
- const v = this.data[table];
88
- if (v !== undefined && v !== null) {
89
- return AsyncStorage.setItem(table, safeStringify(v));
90
- }
91
- else {
92
- return AsyncStorage.removeItem(table);
93
- }
64
+ this.data[table] = state.applyChanges(this.data[table], changes);
65
+ return this.save(table);
66
+ }
67
+ setMetadata(table, metadata) {
68
+ return this.setValue(table + MetadataSuffix, metadata);
69
+ }
70
+ async deleteTable(table) {
71
+ return AsyncStorage.removeItem(table);
72
+ }
73
+ deleteMetadata(table) {
74
+ return this.deleteTable(table + MetadataSuffix);
75
+ }
76
+ // Private
77
+ async setValue(table, value) {
78
+ this.data[table] = value;
79
+ await this.save(table);
80
+ }
81
+ async save(table) {
82
+ const v = this.data[table];
83
+ if (v !== void 0 && v !== null) {
84
+ return AsyncStorage.setItem(table, safeStringify(v));
85
+ } else {
86
+ return AsyncStorage.removeItem(table);
94
87
  }
95
- }
88
+ }
89
+ };
96
90
 
97
91
  exports.ObservablePersistAsyncStorage = ObservablePersistAsyncStorage;
98
- //# sourceMappingURL=async-storage.js.map
@@ -1,96 +1,89 @@
1
1
  import { isArray, applyChanges, internal } from '@legendapp/state';
2
2
 
3
- const MetadataSuffix = '__m';
4
- let AsyncStorage;
5
- const { safeParse, safeStringify } = internal;
6
- class ObservablePersistAsyncStorage {
7
- constructor() {
8
- this.data = {};
9
- }
10
- // Init
11
- async initialize(config) {
12
- let tables = [];
13
- const storageConfig = config.asyncStorage;
14
- if (storageConfig) {
15
- AsyncStorage = storageConfig.AsyncStorage;
16
- const { preload } = storageConfig;
17
- try {
18
- if (preload === true) {
19
- // If preloadAllKeys, load all keys and preload tables on startup
20
- tables = await AsyncStorage.getAllKeys();
21
- }
22
- else if (isArray(preload)) {
23
- // If preloadKeys, preload load the tables on startup
24
- tables = preload;
25
- }
26
- if (tables) {
27
- const values = await AsyncStorage.multiGet(tables);
28
- values.forEach(([table, value]) => {
29
- this.data[table] = value ? safeParse(value) : undefined;
30
- });
31
- }
32
- }
33
- catch (e) {
34
- console.error('[legend-state] ObservablePersistAsyncStorage failed to initialize', e);
35
- }
36
- }
37
- else {
38
- console.error('[legend-state] Missing asyncStorage configuration');
3
+ // src/persist-plugins/async-storage.ts
4
+ var MetadataSuffix = "__m";
5
+ var AsyncStorage;
6
+ var { safeParse, safeStringify } = internal;
7
+ var ObservablePersistAsyncStorage = class {
8
+ constructor() {
9
+ this.data = {};
10
+ }
11
+ // Init
12
+ async initialize(config) {
13
+ let tables = [];
14
+ const storageConfig = config.asyncStorage;
15
+ if (storageConfig) {
16
+ AsyncStorage = storageConfig.AsyncStorage;
17
+ const { preload } = storageConfig;
18
+ try {
19
+ if (preload === true) {
20
+ tables = await AsyncStorage.getAllKeys();
21
+ } else if (isArray(preload)) {
22
+ tables = preload;
39
23
  }
40
- }
41
- loadTable(table) {
42
- if (this.data[table] === undefined) {
43
- try {
44
- return (async () => {
45
- const value = await AsyncStorage.getItem(table);
46
- this.data[table] = value ? safeParse(value) : undefined;
47
- })();
48
- }
49
- catch (_a) {
50
- console.error('[legend-state] ObservablePersistLocalAsyncStorage failed to parse', table);
51
- }
24
+ if (tables) {
25
+ const values = await AsyncStorage.multiGet(tables);
26
+ values.forEach(([table, value]) => {
27
+ this.data[table] = value ? safeParse(value) : void 0;
28
+ });
52
29
  }
30
+ } catch (e) {
31
+ console.error("[legend-state] ObservablePersistAsyncStorage failed to initialize", e);
32
+ }
33
+ } else {
34
+ console.error("[legend-state] Missing asyncStorage configuration");
53
35
  }
54
- // Gets
55
- getTable(table, init) {
56
- var _a, _b;
57
- return (_b = (_a = this.data[table]) !== null && _a !== void 0 ? _a : init) !== null && _b !== void 0 ? _b : {};
58
- }
59
- getMetadata(table) {
60
- return this.getTable(table + MetadataSuffix, {});
61
- }
62
- // Sets
63
- set(table, changes) {
64
- if (!this.data[table]) {
65
- this.data[table] = {};
66
- }
67
- this.data[table] = applyChanges(this.data[table], changes);
68
- return this.save(table);
36
+ }
37
+ loadTable(table) {
38
+ if (this.data[table] === void 0) {
39
+ try {
40
+ return (async () => {
41
+ const value = await AsyncStorage.getItem(table);
42
+ this.data[table] = value ? safeParse(value) : void 0;
43
+ })();
44
+ } catch (e) {
45
+ console.error("[legend-state] ObservablePersistLocalAsyncStorage failed to parse", table);
46
+ }
69
47
  }
70
- setMetadata(table, metadata) {
71
- return this.setValue(table + MetadataSuffix, metadata);
48
+ }
49
+ // Gets
50
+ getTable(table, init) {
51
+ var _a, _b;
52
+ return (_b = (_a = this.data[table]) != null ? _a : init) != null ? _b : {};
53
+ }
54
+ getMetadata(table) {
55
+ return this.getTable(table + MetadataSuffix, {});
56
+ }
57
+ // Sets
58
+ set(table, changes) {
59
+ if (!this.data[table]) {
60
+ this.data[table] = {};
72
61
  }
73
- async deleteTable(table) {
74
- return AsyncStorage.removeItem(table);
75
- }
76
- deleteMetadata(table) {
77
- return this.deleteTable(table + MetadataSuffix);
78
- }
79
- // Private
80
- async setValue(table, value) {
81
- this.data[table] = value;
82
- await this.save(table);
83
- }
84
- async save(table) {
85
- const v = this.data[table];
86
- if (v !== undefined && v !== null) {
87
- return AsyncStorage.setItem(table, safeStringify(v));
88
- }
89
- else {
90
- return AsyncStorage.removeItem(table);
91
- }
62
+ this.data[table] = applyChanges(this.data[table], changes);
63
+ return this.save(table);
64
+ }
65
+ setMetadata(table, metadata) {
66
+ return this.setValue(table + MetadataSuffix, metadata);
67
+ }
68
+ async deleteTable(table) {
69
+ return AsyncStorage.removeItem(table);
70
+ }
71
+ deleteMetadata(table) {
72
+ return this.deleteTable(table + MetadataSuffix);
73
+ }
74
+ // Private
75
+ async setValue(table, value) {
76
+ this.data[table] = value;
77
+ await this.save(table);
78
+ }
79
+ async save(table) {
80
+ const v = this.data[table];
81
+ if (v !== void 0 && v !== null) {
82
+ return AsyncStorage.setItem(table, safeStringify(v));
83
+ } else {
84
+ return AsyncStorage.removeItem(table);
92
85
  }
93
- }
86
+ }
87
+ };
94
88
 
95
89
  export { ObservablePersistAsyncStorage };
96
- //# sourceMappingURL=async-storage.mjs.map
@@ -0,0 +1,29 @@
1
+ import { Change } from '@legendapp/state';
2
+ import { ObservablePersistPlugin, ObservablePersistPluginOptions, PersistOptions, PersistMetadata } from '@legendapp/state/sync';
3
+
4
+ declare class ObservablePersistIndexedDB implements ObservablePersistPlugin {
5
+ private tableData;
6
+ private tableMetadata;
7
+ private tablesAdjusted;
8
+ private db;
9
+ private isSaveTaskQueued;
10
+ private pendingSaves;
11
+ private promisesQueued;
12
+ constructor();
13
+ initialize(config: ObservablePersistPluginOptions): Promise<void>;
14
+ loadTable(table: string, config: PersistOptions): void | Promise<void>;
15
+ getTable(table: string, init: object, config: PersistOptions): any;
16
+ getMetadata(table: string, config: PersistOptions): any;
17
+ setMetadata(table: string, metadata: PersistMetadata, config: PersistOptions): Promise<IDBRequest<IDBValidKey>>;
18
+ deleteMetadata(table: string, config: PersistOptions): Promise<void>;
19
+ set(table: string, changes: Change[], config: PersistOptions): Promise<void>;
20
+ private doSave;
21
+ deleteTable(table: string, config: PersistOptions): Promise<void>;
22
+ private getMetadataTableName;
23
+ private initTable;
24
+ private transactionStore;
25
+ private _setItem;
26
+ private _setTable;
27
+ }
28
+
29
+ export { ObservablePersistIndexedDB };
@@ -1,6 +1,7 @@
1
- import type { Change } from '@legendapp/state';
2
- import type { ObservablePersistPluginOptions, ObservablePersistPlugin, PersistMetadata, PersistOptions } from '@legendapp/state/sync';
3
- export declare class ObservablePersistIndexedDB implements ObservablePersistPlugin {
1
+ import { Change } from '@legendapp/state';
2
+ import { ObservablePersistPlugin, ObservablePersistPluginOptions, PersistOptions, PersistMetadata } from '@legendapp/state/sync';
3
+
4
+ declare class ObservablePersistIndexedDB implements ObservablePersistPlugin {
4
5
  private tableData;
5
6
  private tableMetadata;
6
7
  private tablesAdjusted;
@@ -24,3 +25,5 @@ export declare class ObservablePersistIndexedDB implements ObservablePersistPlug
24
25
  private _setItem;
25
26
  private _setTable;
26
27
  }
28
+
29
+ export { ObservablePersistIndexedDB };