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

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 +2003 -2164
  104. package/index.mjs +2003 -2164
  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 +909 -962
  169. package/sync.mjs +919 -972
  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
@@ -3,45 +3,58 @@
3
3
  var state = require('@legendapp/state');
4
4
  var sync = require('@legendapp/state/sync');
5
5
 
6
+ // src/sync-plugins/fetch.ts
6
7
  function syncedFetch(props) {
7
- const { get: getParam, set: setParam, getInit, setInit, valueType, onSaved, onSavedValueType, transform, ...rest } = props;
8
- const get = async () => {
9
- const url = state.computeSelector(getParam);
10
- const response = await fetch(url, getInit);
11
- if (!response.ok) {
12
- throw new Error(response.statusText);
13
- }
14
- let value = await response[valueType || 'json']();
15
- if (transform === null || transform === void 0 ? void 0 : transform.load) {
16
- value = transform === null || transform === void 0 ? void 0 : transform.load(value, 'get');
17
- }
18
- return value;
19
- };
20
- let set = undefined;
21
- if (setParam) {
22
- set = async ({ value, node, update }) => {
23
- const url = state.computeSelector(setParam);
24
- const response = await fetch(url, Object.assign({ method: 'POST' }, setInit, { body: JSON.stringify(value) }));
25
- if (!response.ok) {
26
- throw new Error(response.statusText);
27
- }
28
- if (onSaved) {
29
- const responseValue = await response[onSavedValueType || valueType || 'json']();
30
- const transformed = (transform === null || transform === void 0 ? void 0 : transform.load) ? await transform.load(responseValue, 'set') : responseValue;
31
- const currentValue = state.getNodeValue(node);
32
- const valueSave = onSaved({ input: value, saved: transformed, currentValue, props });
33
- update({
34
- value: valueSave,
35
- });
36
- }
37
- };
8
+ const {
9
+ get: getParam,
10
+ set: setParam,
11
+ getInit,
12
+ setInit,
13
+ valueType,
14
+ onSaved,
15
+ onSavedValueType,
16
+ transform,
17
+ ...rest
18
+ } = props;
19
+ const get = async () => {
20
+ const url = state.computeSelector(getParam);
21
+ const response = await fetch(url, getInit);
22
+ if (!response.ok) {
23
+ throw new Error(response.statusText);
24
+ }
25
+ let value = await response[valueType || "json"]();
26
+ if (transform == null ? void 0 : transform.load) {
27
+ value = transform == null ? void 0 : transform.load(value, "get");
38
28
  }
39
- return sync.synced({
40
- ...rest,
41
- get,
42
- set,
43
- });
29
+ return value;
30
+ };
31
+ let set = void 0;
32
+ if (setParam) {
33
+ set = async ({ value, node, update }) => {
34
+ const url = state.computeSelector(setParam);
35
+ const response = await fetch(
36
+ url,
37
+ Object.assign({ method: "POST" }, setInit, { body: JSON.stringify(value) })
38
+ );
39
+ if (!response.ok) {
40
+ throw new Error(response.statusText);
41
+ }
42
+ if (onSaved) {
43
+ const responseValue = await response[onSavedValueType || valueType || "json"]();
44
+ const transformed = (transform == null ? void 0 : transform.load) ? await transform.load(responseValue, "set") : responseValue;
45
+ const currentValue = state.getNodeValue(node);
46
+ const valueSave = onSaved({ input: value, saved: transformed, currentValue, props });
47
+ update({
48
+ value: valueSave
49
+ });
50
+ }
51
+ };
52
+ }
53
+ return sync.synced({
54
+ ...rest,
55
+ get,
56
+ set
57
+ });
44
58
  }
45
59
 
46
60
  exports.syncedFetch = syncedFetch;
47
- //# sourceMappingURL=fetch.js.map
@@ -1,45 +1,58 @@
1
1
  import { computeSelector, getNodeValue } from '@legendapp/state';
2
2
  import { synced } from '@legendapp/state/sync';
3
3
 
4
+ // src/sync-plugins/fetch.ts
4
5
  function syncedFetch(props) {
5
- const { get: getParam, set: setParam, getInit, setInit, valueType, onSaved, onSavedValueType, transform, ...rest } = props;
6
- const get = async () => {
7
- const url = computeSelector(getParam);
8
- const response = await fetch(url, getInit);
9
- if (!response.ok) {
10
- throw new Error(response.statusText);
11
- }
12
- let value = await response[valueType || 'json']();
13
- if (transform === null || transform === void 0 ? void 0 : transform.load) {
14
- value = transform === null || transform === void 0 ? void 0 : transform.load(value, 'get');
15
- }
16
- return value;
17
- };
18
- let set = undefined;
19
- if (setParam) {
20
- set = async ({ value, node, update }) => {
21
- const url = computeSelector(setParam);
22
- const response = await fetch(url, Object.assign({ method: 'POST' }, setInit, { body: JSON.stringify(value) }));
23
- if (!response.ok) {
24
- throw new Error(response.statusText);
25
- }
26
- if (onSaved) {
27
- const responseValue = await response[onSavedValueType || valueType || 'json']();
28
- const transformed = (transform === null || transform === void 0 ? void 0 : transform.load) ? await transform.load(responseValue, 'set') : responseValue;
29
- const currentValue = getNodeValue(node);
30
- const valueSave = onSaved({ input: value, saved: transformed, currentValue, props });
31
- update({
32
- value: valueSave,
33
- });
34
- }
35
- };
6
+ const {
7
+ get: getParam,
8
+ set: setParam,
9
+ getInit,
10
+ setInit,
11
+ valueType,
12
+ onSaved,
13
+ onSavedValueType,
14
+ transform,
15
+ ...rest
16
+ } = props;
17
+ const get = async () => {
18
+ const url = computeSelector(getParam);
19
+ const response = await fetch(url, getInit);
20
+ if (!response.ok) {
21
+ throw new Error(response.statusText);
22
+ }
23
+ let value = await response[valueType || "json"]();
24
+ if (transform == null ? void 0 : transform.load) {
25
+ value = transform == null ? void 0 : transform.load(value, "get");
36
26
  }
37
- return synced({
38
- ...rest,
39
- get,
40
- set,
41
- });
27
+ return value;
28
+ };
29
+ let set = void 0;
30
+ if (setParam) {
31
+ set = async ({ value, node, update }) => {
32
+ const url = computeSelector(setParam);
33
+ const response = await fetch(
34
+ url,
35
+ Object.assign({ method: "POST" }, setInit, { body: JSON.stringify(value) })
36
+ );
37
+ if (!response.ok) {
38
+ throw new Error(response.statusText);
39
+ }
40
+ if (onSaved) {
41
+ const responseValue = await response[onSavedValueType || valueType || "json"]();
42
+ const transformed = (transform == null ? void 0 : transform.load) ? await transform.load(responseValue, "set") : responseValue;
43
+ const currentValue = getNodeValue(node);
44
+ const valueSave = onSaved({ input: value, saved: transformed, currentValue, props });
45
+ update({
46
+ value: valueSave
47
+ });
48
+ }
49
+ };
50
+ }
51
+ return synced({
52
+ ...rest,
53
+ get,
54
+ set
55
+ });
42
56
  }
43
57
 
44
58
  export { syncedFetch };
45
- //# sourceMappingURL=fetch.mjs.map
@@ -0,0 +1,108 @@
1
+ import { SyncedOptions } from '@legendapp/state/sync';
2
+ import { SyncedCrudPropsBase, CrudAsOption, SyncedCrudReturnType, SyncedCrudPropsSingle, CrudResult, SyncedCrudPropsMany } from '@legendapp/state/sync-plugins/crud';
3
+
4
+ interface KeelObjectBase {
5
+ id: string;
6
+ createdAt: Date;
7
+ updatedAt: Date;
8
+ }
9
+ type KeelKey = 'createdAt' | 'updatedAt';
10
+ declare const KeelKeys: KeelKey[];
11
+ type OmitKeelBuiltins<T, T2 extends string = ''> = Omit<T, KeelKey | T2>;
12
+ type APIError = {
13
+ type: string;
14
+ message: string;
15
+ requestId?: string;
16
+ };
17
+ type APIResult<T> = Result<T, APIError>;
18
+ type Data<T> = {
19
+ data: T;
20
+ error?: never;
21
+ };
22
+ type Err<U> = {
23
+ data?: never;
24
+ error: U;
25
+ };
26
+ type Result<T, U> = NonNullable<Data<T> | Err<U>>;
27
+ declare function generateKeelId(): string;
28
+ interface KeelGetParams {
29
+ }
30
+ interface KeelListParams<Where = {}> {
31
+ where: {
32
+ updatedAt?: {
33
+ after: Date;
34
+ };
35
+ } & Where;
36
+ after?: string;
37
+ first?: number;
38
+ last?: number;
39
+ before?: string;
40
+ }
41
+ interface KeelRealtimePlugin {
42
+ subscribe: (realtimeKey: string, refresh: () => void) => void;
43
+ setLatestChange: (realtimeKey: string, time: Date) => void;
44
+ }
45
+ interface SyncedKeelConfiguration extends Omit<SyncedCrudPropsBase<any>, keyof SyncedOptions | 'create' | 'update' | 'delete' | 'onSaved' | 'updatePartial' | 'fieldCreatedAt' | 'fieldUpdatedAt' | 'generateId'> {
46
+ client: {
47
+ auth: {
48
+ refresh: () => Promise<boolean>;
49
+ isAuthenticated: () => Promise<boolean>;
50
+ };
51
+ api: {
52
+ queries: Record<string, (i: any) => Promise<any>>;
53
+ };
54
+ };
55
+ realtimePlugin?: KeelRealtimePlugin;
56
+ as?: Exclude<CrudAsOption, 'value'>;
57
+ enabled?: boolean;
58
+ onError?: (params: APIResult<any>['error']) => void;
59
+ }
60
+ interface SyncedKeelPropsManyBase<TRemote, TLocal, AOption extends CrudAsOption> extends Omit<SyncedCrudPropsMany<TRemote, TLocal, AOption>, 'list'> {
61
+ first?: number;
62
+ get?: never;
63
+ }
64
+ interface SyncedKeelPropsManyWhere<TRemote, TLocal, AOption extends CrudAsOption, Where extends Record<string, any>> extends SyncedKeelPropsManyBase<TRemote, TLocal, AOption> {
65
+ list?: (params: KeelListParams<NoInfer<Where>>) => Promise<CrudResult<APIResult<{
66
+ results: TRemote[];
67
+ pageInfo: any;
68
+ }>>>;
69
+ where?: Where | (() => Where);
70
+ }
71
+ interface SyncedKeelPropsManyNoWhere<TRemote, TLocal, AOption extends CrudAsOption> extends SyncedKeelPropsManyBase<TRemote, TLocal, AOption> {
72
+ list?: (params: KeelListParams<{}>) => Promise<CrudResult<APIResult<{
73
+ results: TRemote[];
74
+ pageInfo: any;
75
+ }>>>;
76
+ where?: never | {};
77
+ }
78
+ type HasAnyKeys<T> = keyof T extends never ? false : true;
79
+ type SyncedKeelPropsMany<TRemote, TLocal, AOption extends CrudAsOption, Where extends Record<string, any>> = HasAnyKeys<Where> extends true ? SyncedKeelPropsManyWhere<TRemote, TLocal, AOption, Where> : SyncedKeelPropsManyNoWhere<TRemote, TLocal, AOption>;
80
+ interface SyncedKeelPropsSingle<TRemote, TLocal> extends Omit<SyncedCrudPropsSingle<TRemote, TLocal>, 'get'> {
81
+ get?: (params: KeelGetParams) => Promise<APIResult<TRemote>>;
82
+ first?: never;
83
+ where?: never;
84
+ list?: never;
85
+ as?: never;
86
+ }
87
+ interface SyncedKeelPropsBase<TRemote extends {
88
+ id: string;
89
+ }, TLocal = TRemote> extends Omit<SyncedCrudPropsBase<TRemote, TLocal>, 'create' | 'update' | 'delete' | 'updatePartial' | 'fieldUpdatedAt' | 'fieldCreatedAt'> {
90
+ create?: (i: NoInfer<Partial<TRemote>>) => Promise<APIResult<NoInfer<TRemote>>>;
91
+ update?: (params: {
92
+ where: any;
93
+ values?: Partial<TRemote>;
94
+ }) => Promise<APIResult<TRemote>>;
95
+ delete?: (params: {
96
+ id: string;
97
+ }) => Promise<APIResult<string>>;
98
+ }
99
+ declare function getSyncedKeelConfiguration(): SyncedKeelConfiguration;
100
+ declare function configureSyncedKeel(config: SyncedKeelConfiguration): void;
101
+ declare function syncedKeel<TRemote extends {
102
+ id: string;
103
+ }, TLocal = TRemote>(props: SyncedKeelPropsBase<TRemote, TLocal> & SyncedKeelPropsSingle<TRemote, TLocal>): SyncedCrudReturnType<TLocal, 'value'>;
104
+ declare function syncedKeel<TRemote extends {
105
+ id: string;
106
+ }, TLocal = TRemote, TOption extends CrudAsOption = 'object', Where extends Record<string, any> = {}>(props: SyncedKeelPropsBase<TRemote, TLocal> & SyncedKeelPropsMany<TRemote, TLocal, TOption, Where>): SyncedCrudReturnType<TLocal, Exclude<TOption, 'value'>>;
107
+
108
+ export { type KeelGetParams, type KeelKey, KeelKeys, type KeelListParams, type KeelObjectBase, type KeelRealtimePlugin, type OmitKeelBuiltins, type SyncedKeelConfiguration, configureSyncedKeel, generateKeelId, getSyncedKeelConfiguration, syncedKeel };
@@ -1,13 +1,14 @@
1
1
  import { SyncedOptions } from '@legendapp/state/sync';
2
- import { CrudAsOption, CrudResult, SyncedCrudPropsBase, SyncedCrudPropsMany, SyncedCrudPropsSingle, SyncedCrudReturnType } from '@legendapp/state/sync-plugins/crud';
3
- export interface KeelObjectBase {
2
+ import { SyncedCrudPropsBase, CrudAsOption, SyncedCrudReturnType, SyncedCrudPropsSingle, CrudResult, SyncedCrudPropsMany } from '@legendapp/state/sync-plugins/crud';
3
+
4
+ interface KeelObjectBase {
4
5
  id: string;
5
6
  createdAt: Date;
6
7
  updatedAt: Date;
7
8
  }
8
- export type KeelKey = 'createdAt' | 'updatedAt';
9
- export declare const KeelKeys: KeelKey[];
10
- export type OmitKeelBuiltins<T, T2 extends string = ''> = Omit<T, KeelKey | T2>;
9
+ type KeelKey = 'createdAt' | 'updatedAt';
10
+ declare const KeelKeys: KeelKey[];
11
+ type OmitKeelBuiltins<T, T2 extends string = ''> = Omit<T, KeelKey | T2>;
11
12
  type APIError = {
12
13
  type: string;
13
14
  message: string;
@@ -23,10 +24,10 @@ type Err<U> = {
23
24
  error: U;
24
25
  };
25
26
  type Result<T, U> = NonNullable<Data<T> | Err<U>>;
26
- export declare function generateKeelId(): string;
27
- export interface KeelGetParams {
27
+ declare function generateKeelId(): string;
28
+ interface KeelGetParams {
28
29
  }
29
- export interface KeelListParams<Where = {}> {
30
+ interface KeelListParams<Where = {}> {
30
31
  where: {
31
32
  updatedAt?: {
32
33
  after: Date;
@@ -37,11 +38,11 @@ export interface KeelListParams<Where = {}> {
37
38
  last?: number;
38
39
  before?: string;
39
40
  }
40
- export interface KeelRealtimePlugin {
41
+ interface KeelRealtimePlugin {
41
42
  subscribe: (realtimeKey: string, refresh: () => void) => void;
42
43
  setLatestChange: (realtimeKey: string, time: Date) => void;
43
44
  }
44
- export interface SyncedKeelConfiguration extends Omit<SyncedCrudPropsBase<any>, keyof SyncedOptions | 'create' | 'update' | 'delete' | 'onSaved' | 'updatePartial' | 'fieldCreatedAt' | 'fieldUpdatedAt' | 'generateId'> {
45
+ interface SyncedKeelConfiguration extends Omit<SyncedCrudPropsBase<any>, keyof SyncedOptions | 'create' | 'update' | 'delete' | 'onSaved' | 'updatePartial' | 'fieldCreatedAt' | 'fieldUpdatedAt' | 'generateId'> {
45
46
  client: {
46
47
  auth: {
47
48
  refresh: () => Promise<boolean>;
@@ -95,12 +96,13 @@ interface SyncedKeelPropsBase<TRemote extends {
95
96
  id: string;
96
97
  }) => Promise<APIResult<string>>;
97
98
  }
98
- export declare function getSyncedKeelConfiguration(): SyncedKeelConfiguration;
99
- export declare function configureSyncedKeel(config: SyncedKeelConfiguration): void;
100
- export declare function syncedKeel<TRemote extends {
99
+ declare function getSyncedKeelConfiguration(): SyncedKeelConfiguration;
100
+ declare function configureSyncedKeel(config: SyncedKeelConfiguration): void;
101
+ declare function syncedKeel<TRemote extends {
101
102
  id: string;
102
103
  }, TLocal = TRemote>(props: SyncedKeelPropsBase<TRemote, TLocal> & SyncedKeelPropsSingle<TRemote, TLocal>): SyncedCrudReturnType<TLocal, 'value'>;
103
- export declare function syncedKeel<TRemote extends {
104
+ declare function syncedKeel<TRemote extends {
104
105
  id: string;
105
106
  }, TLocal = TRemote, TOption extends CrudAsOption = 'object', Where extends Record<string, any> = {}>(props: SyncedKeelPropsBase<TRemote, TLocal> & SyncedKeelPropsMany<TRemote, TLocal, TOption, Where>): SyncedCrudReturnType<TLocal, Exclude<TOption, 'value'>>;
106
- export {};
107
+
108
+ export { type KeelGetParams, type KeelKey, KeelKeys, type KeelListParams, type KeelObjectBase, type KeelRealtimePlugin, type OmitKeelBuiltins, type SyncedKeelConfiguration, configureSyncedKeel, generateKeelId, getSyncedKeelConfiguration, syncedKeel };