@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.
- package/.DS_Store +0 -0
- package/CHANGELOG.md +1 -831
- package/LICENSE +1 -21
- package/README.md +1 -141
- package/as/arrayAsRecord.d.mts +5 -0
- package/as/arrayAsRecord.d.ts +5 -0
- package/as/arrayAsRecord.js +28 -0
- package/as/arrayAsRecord.mjs +26 -0
- package/as/arrayAsSet.d.mts +5 -0
- package/as/arrayAsSet.d.ts +5 -0
- package/as/arrayAsSet.js +13 -0
- package/as/arrayAsSet.mjs +11 -0
- package/as/arrayAsString.d.mts +5 -0
- package/as/arrayAsString.d.ts +5 -0
- package/as/arrayAsString.js +13 -0
- package/as/arrayAsString.mjs +11 -0
- package/as/numberAsString.d.mts +5 -0
- package/as/numberAsString.d.ts +5 -0
- package/as/numberAsString.js +13 -0
- package/as/numberAsString.mjs +11 -0
- package/as/recordAsArray.d.mts +5 -0
- package/as/recordAsArray.d.ts +5 -0
- package/as/recordAsArray.js +25 -0
- package/as/recordAsArray.mjs +23 -0
- package/as/recordAsString.d.mts +5 -0
- package/as/recordAsString.d.ts +5 -0
- package/as/recordAsString.js +13 -0
- package/as/recordAsString.mjs +11 -0
- package/as/setAsArray.d.mts +5 -0
- package/as/setAsArray.d.ts +5 -0
- package/as/setAsArray.js +13 -0
- package/as/setAsArray.mjs +11 -0
- package/as/setAsString.d.mts +5 -0
- package/as/setAsString.d.ts +5 -0
- package/as/setAsString.js +13 -0
- package/as/setAsString.mjs +11 -0
- package/as/stringAsArray.d.mts +5 -0
- package/as/stringAsArray.d.ts +5 -0
- package/as/stringAsArray.js +13 -0
- package/as/stringAsArray.mjs +11 -0
- package/as/stringAsNumber.d.mts +5 -0
- package/as/stringAsNumber.d.ts +5 -0
- package/as/stringAsNumber.js +16 -0
- package/as/stringAsNumber.mjs +14 -0
- package/as/stringAsRecord.d.mts +5 -0
- package/as/stringAsRecord.d.ts +5 -0
- package/as/stringAsRecord.js +15 -0
- package/as/stringAsRecord.mjs +13 -0
- package/as/stringAsSet.d.mts +5 -0
- package/as/stringAsSet.d.ts +5 -0
- package/as/stringAsSet.js +13 -0
- package/as/stringAsSet.mjs +11 -0
- package/babel.d.mts +21 -0
- package/babel.d.ts +21 -2
- package/babel.js +57 -53
- package/babel.mjs +65 -0
- package/config/enable$GetSet.js +13 -14
- package/config/enable$GetSet.mjs +13 -14
- package/config/enableReactComponents.d.mts +9 -0
- package/config/enableReactComponents.d.ts +4 -2
- package/config/enableReactComponents.js +13 -10
- package/config/enableReactComponents.mjs +13 -10
- package/config/enableReactNativeComponents.d.mts +22 -0
- package/config/enableReactNativeComponents.d.ts +6 -4
- package/config/enableReactNativeComponents.js +43 -47
- package/config/enableReactNativeComponents.mjs +43 -47
- package/config/enableReactTracking.d.mts +7 -0
- package/config/enableReactTracking.d.ts +3 -2
- package/config/enableReactTracking.js +33 -38
- package/config/enableReactTracking.mjs +33 -38
- package/config/enableReactUse.d.mts +10 -0
- package/config/enableReactUse.d.ts +4 -1
- package/config/enableReactUse.js +15 -14
- package/config/enableReactUse.mjs +15 -14
- package/config/{enable$GetSet.d.ts → enable_GetSet.d.mts} +4 -2
- package/config/enable_GetSet.d.ts +10 -0
- package/config/enable_PeekAssign.d.mts +10 -0
- package/config/enable_PeekAssign.d.ts +4 -2
- package/config/enable_PeekAssign.js +13 -14
- package/config/enable_PeekAssign.mjs +13 -14
- package/helpers/pageHash.d.mts +9 -0
- package/helpers/pageHash.d.ts +2 -0
- package/helpers/pageHash.js +25 -30
- package/helpers/pageHash.mjs +25 -30
- package/helpers/pageHashParams.d.mts +9 -0
- package/helpers/pageHashParams.d.ts +2 -0
- package/helpers/pageHashParams.js +34 -37
- package/helpers/pageHashParams.mjs +34 -37
- package/helpers/time.d.mts +6 -0
- package/helpers/time.d.ts +6 -3
- package/helpers/time.js +17 -17
- package/helpers/time.mjs +17 -17
- package/helpers/trackHistory.d.mts +6 -0
- package/helpers/trackHistory.d.ts +4 -2
- package/helpers/trackHistory.js +13 -16
- package/helpers/trackHistory.mjs +13 -16
- package/helpers/undoRedo.d.mts +37 -0
- package/helpers/undoRedo.d.ts +5 -3
- package/helpers/undoRedo.js +59 -94
- package/helpers/undoRedo.mjs +59 -94
- package/index.d.mts +404 -0
- package/index.d.ts +371 -28
- package/index.js +2003 -2164
- package/index.mjs +2003 -2164
- package/package.json +254 -195
- package/persist-plugins/async-storage.d.mts +18 -0
- package/persist-plugins/async-storage.d.ts +6 -3
- package/persist-plugins/async-storage.js +79 -86
- package/persist-plugins/async-storage.mjs +79 -86
- package/persist-plugins/indexeddb.d.mts +29 -0
- package/persist-plugins/indexeddb.d.ts +6 -3
- package/persist-plugins/indexeddb.js +331 -352
- package/persist-plugins/indexeddb.mjs +331 -352
- package/persist-plugins/local-storage.d.mts +23 -0
- package/persist-plugins/local-storage.d.ts +8 -5
- package/persist-plugins/local-storage.js +74 -76
- package/persist-plugins/local-storage.mjs +74 -76
- package/persist-plugins/mmkv.d.mts +18 -0
- package/persist-plugins/mmkv.d.ts +6 -3
- package/persist-plugins/mmkv.js +82 -86
- package/persist-plugins/mmkv.mjs +82 -86
- package/react-hooks/createObservableHook.d.mts +5 -0
- package/react-hooks/createObservableHook.d.ts +4 -1
- package/react-hooks/createObservableHook.js +29 -30
- package/react-hooks/createObservableHook.mjs +25 -30
- package/react-hooks/useHover.d.mts +5 -0
- package/react-hooks/useHover.d.ts +5 -3
- package/react-hooks/useHover.js +29 -29
- package/react-hooks/useHover.mjs +29 -29
- package/react-hooks/useMeasure.d.mts +9 -0
- package/react-hooks/useMeasure.d.ts +5 -2
- package/react-hooks/useMeasure.js +30 -32
- package/react-hooks/useMeasure.mjs +30 -32
- package/react-hooks/useObservableNextRouter.d.mts +35 -0
- package/react-hooks/useObservableNextRouter.d.ts +9 -7
- package/react-hooks/useObservableNextRouter.js +64 -77
- package/react-hooks/useObservableNextRouter.mjs +60 -77
- package/react.d.mts +157 -0
- package/react.d.ts +157 -21
- package/react.js +458 -749
- package/react.mjs +457 -752
- package/sync-plugins/crud.d.mts +54 -0
- package/sync-plugins/crud.d.ts +12 -10
- package/sync-plugins/crud.js +253 -270
- package/sync-plugins/crud.mjs +253 -270
- package/sync-plugins/fetch.d.mts +21 -0
- package/sync-plugins/fetch.d.ts +7 -4
- package/sync-plugins/fetch.js +50 -37
- package/sync-plugins/fetch.mjs +50 -37
- package/sync-plugins/keel.d.mts +108 -0
- package/sync-plugins/keel.d.ts +17 -15
- package/sync-plugins/keel.js +229 -462
- package/sync-plugins/keel.mjs +227 -464
- package/sync-plugins/supabase.d.mts +39 -0
- package/sync-plugins/supabase.d.ts +16 -14
- package/sync-plugins/supabase.js +128 -128
- package/sync-plugins/supabase.mjs +128 -128
- package/sync-plugins/tanstack-query.d.mts +14 -0
- package/sync-plugins/tanstack-query.d.ts +7 -4
- package/sync-plugins/tanstack-query.js +51 -57
- package/sync-plugins/tanstack-query.mjs +51 -57
- package/sync-plugins/tanstack-react-query.d.mts +8 -0
- package/sync-plugins/tanstack-react-query.d.ts +6 -1
- package/sync-plugins/tanstack-react-query.js +2 -2
- package/sync-plugins/tanstack-react-query.mjs +2 -2
- package/sync.d.mts +351 -0
- package/sync.d.ts +349 -9
- package/sync.js +909 -962
- package/sync.mjs +919 -972
- package/trace.d.mts +9 -0
- package/trace.d.ts +9 -4
- package/trace.js +72 -62
- package/trace.mjs +72 -62
- package/types/babel.d.ts +1 -12
- package/babel.js.map +0 -1
- package/config/enable$GetSet.js.map +0 -1
- package/config/enable$GetSet.mjs.map +0 -1
- package/config/enableReactComponents.js.map +0 -1
- package/config/enableReactComponents.mjs.map +0 -1
- package/config/enableReactNativeComponents.js.map +0 -1
- package/config/enableReactNativeComponents.mjs.map +0 -1
- package/config/enableReactTracking.js.map +0 -1
- package/config/enableReactTracking.mjs.map +0 -1
- package/config/enableReactUse.js.map +0 -1
- package/config/enableReactUse.mjs.map +0 -1
- package/config/enable_PeekAssign.js.map +0 -1
- package/config/enable_PeekAssign.mjs.map +0 -1
- package/helpers/pageHash.js.map +0 -1
- package/helpers/pageHash.mjs.map +0 -1
- package/helpers/pageHashParams.js.map +0 -1
- package/helpers/pageHashParams.mjs.map +0 -1
- package/helpers/time.js.map +0 -1
- package/helpers/time.mjs.map +0 -1
- package/helpers/trackHistory.js.map +0 -1
- package/helpers/trackHistory.mjs.map +0 -1
- package/helpers/undoRedo.js.map +0 -1
- package/helpers/undoRedo.mjs.map +0 -1
- package/history.d.ts +0 -1
- package/history.js +0 -24
- package/history.js.map +0 -1
- package/history.mjs +0 -22
- package/history.mjs.map +0 -1
- package/index.js.map +0 -1
- package/index.mjs.map +0 -1
- package/persist-plugins/async-storage.js.map +0 -1
- package/persist-plugins/async-storage.mjs.map +0 -1
- package/persist-plugins/indexeddb.js.map +0 -1
- package/persist-plugins/indexeddb.mjs.map +0 -1
- package/persist-plugins/local-storage.js.map +0 -1
- package/persist-plugins/local-storage.mjs.map +0 -1
- package/persist-plugins/mmkv.js.map +0 -1
- package/persist-plugins/mmkv.mjs.map +0 -1
- package/react-hooks/createObservableHook.js.map +0 -1
- package/react-hooks/createObservableHook.mjs.map +0 -1
- package/react-hooks/useHover.js.map +0 -1
- package/react-hooks/useHover.mjs.map +0 -1
- package/react-hooks/useMeasure.js.map +0 -1
- package/react-hooks/useMeasure.mjs.map +0 -1
- package/react-hooks/useObservableNextRouter.js.map +0 -1
- package/react-hooks/useObservableNextRouter.mjs.map +0 -1
- package/react.js.map +0 -1
- package/react.mjs.map +0 -1
- package/src/ObservableObject.ts +0 -1350
- package/src/ObservablePrimitive.ts +0 -62
- package/src/babel/index.ts +0 -83
- package/src/batching.ts +0 -357
- package/src/computed.ts +0 -18
- package/src/config/enable$GetSet.ts +0 -30
- package/src/config/enableReactComponents.ts +0 -26
- package/src/config/enableReactNativeComponents.ts +0 -102
- package/src/config/enableReactTracking.ts +0 -62
- package/src/config/enableReactUse.ts +0 -32
- package/src/config/enable_PeekAssign.ts +0 -31
- package/src/config.ts +0 -47
- package/src/createObservable.ts +0 -47
- package/src/event.ts +0 -26
- package/src/globals.ts +0 -235
- package/src/helpers/pageHash.ts +0 -41
- package/src/helpers/pageHashParams.ts +0 -55
- package/src/helpers/time.ts +0 -30
- package/src/helpers/trackHistory.ts +0 -29
- package/src/helpers/undoRedo.ts +0 -111
- package/src/helpers.ts +0 -231
- package/src/is.ts +0 -63
- package/src/linked.ts +0 -17
- package/src/observable.ts +0 -32
- package/src/observableInterfaces.ts +0 -151
- package/src/observableTypes.ts +0 -232
- package/src/observe.ts +0 -89
- package/src/old-plugins/firebase.ts +0 -1053
- package/src/onChange.ts +0 -146
- package/src/persist/configureObservablePersistence.ts +0 -7
- package/src/persist/fieldTransformer.ts +0 -149
- package/src/persist/observablePersistRemoteFunctionsAdapter.ts +0 -39
- package/src/persist/persistObservable.ts +0 -1034
- package/src/persist-plugins/async-storage.ts +0 -99
- package/src/persist-plugins/indexeddb.ts +0 -439
- package/src/persist-plugins/local-storage.ts +0 -86
- package/src/persist-plugins/mmkv.ts +0 -91
- package/src/proxy.ts +0 -28
- package/src/react/Computed.tsx +0 -8
- package/src/react/For.tsx +0 -116
- package/src/react/Memo.tsx +0 -4
- package/src/react/Reactive.tsx +0 -53
- package/src/react/Show.tsx +0 -33
- package/src/react/Switch.tsx +0 -43
- package/src/react/react-globals.ts +0 -3
- package/src/react/reactInterfaces.ts +0 -32
- package/src/react/reactive-observer.tsx +0 -210
- package/src/react/useComputed.ts +0 -36
- package/src/react/useEffectOnce.ts +0 -41
- package/src/react/useIsMounted.ts +0 -16
- package/src/react/useMount.ts +0 -15
- package/src/react/useObservable.ts +0 -24
- package/src/react/useObservableReducer.ts +0 -52
- package/src/react/useObservableState.ts +0 -30
- package/src/react/useObserve.ts +0 -54
- package/src/react/useObserveEffect.ts +0 -40
- package/src/react/usePauseProvider.tsx +0 -16
- package/src/react/useSelector.ts +0 -167
- package/src/react/useUnmount.ts +0 -8
- package/src/react/useWhen.ts +0 -9
- package/src/react-hooks/createObservableHook.ts +0 -53
- package/src/react-hooks/useHover.ts +0 -40
- package/src/react-hooks/useMeasure.ts +0 -48
- package/src/react-hooks/useObservableNextRouter.ts +0 -137
- package/src/retry.ts +0 -71
- package/src/setupTracking.ts +0 -26
- package/src/sync/activateSyncedNode.ts +0 -128
- package/src/sync/configureObservableSync.ts +0 -7
- package/src/sync/persistTypes.ts +0 -216
- package/src/sync/syncHelpers.ts +0 -180
- package/src/sync/syncObservable.ts +0 -1056
- package/src/sync/syncObservableAdapter.ts +0 -31
- package/src/sync/syncTypes.ts +0 -189
- package/src/sync/synced.ts +0 -21
- package/src/sync-plugins/crud.ts +0 -412
- package/src/sync-plugins/fetch.ts +0 -80
- package/src/sync-plugins/keel.ts +0 -495
- package/src/sync-plugins/supabase.ts +0 -249
- package/src/sync-plugins/tanstack-query.ts +0 -113
- package/src/sync-plugins/tanstack-react-query.ts +0 -12
- package/src/trace/traceHelpers.ts +0 -11
- package/src/trace/useTraceListeners.ts +0 -34
- package/src/trace/useTraceUpdates.ts +0 -24
- package/src/trace/useVerifyNotTracking.ts +0 -33
- package/src/trace/useVerifyOneRender.ts +0 -10
- package/src/trackSelector.ts +0 -52
- package/src/tracking.ts +0 -43
- package/src/types/babel.d.ts +0 -12
- package/src/when.ts +0 -75
- package/sync-plugins/crud.js.map +0 -1
- package/sync-plugins/crud.mjs.map +0 -1
- package/sync-plugins/fetch.js.map +0 -1
- package/sync-plugins/fetch.mjs.map +0 -1
- package/sync-plugins/keel.js.map +0 -1
- package/sync-plugins/keel.mjs.map +0 -1
- package/sync-plugins/supabase.js.map +0 -1
- package/sync-plugins/supabase.mjs.map +0 -1
- package/sync-plugins/tanstack-query.js.map +0 -1
- package/sync-plugins/tanstack-query.mjs.map +0 -1
- package/sync-plugins/tanstack-react-query.js.map +0 -1
- package/sync-plugins/tanstack-react-query.mjs.map +0 -1
- package/sync.js.map +0 -1
- package/sync.mjs.map +0 -1
- package/trace.js.map +0 -1
- package/trace.mjs.map +0 -1
package/sync-plugins/fetch.js
CHANGED
|
@@ -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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
package/sync-plugins/fetch.mjs
CHANGED
|
@@ -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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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 };
|
package/sync-plugins/keel.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { SyncedOptions } from '@legendapp/state/sync';
|
|
2
|
-
import {
|
|
3
|
-
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
27
|
-
|
|
27
|
+
declare function generateKeelId(): string;
|
|
28
|
+
interface KeelGetParams {
|
|
28
29
|
}
|
|
29
|
-
|
|
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
|
-
|
|
41
|
+
interface KeelRealtimePlugin {
|
|
41
42
|
subscribe: (realtimeKey: string, refresh: () => void) => void;
|
|
42
43
|
setLatestChange: (realtimeKey: string, time: Date) => void;
|
|
43
44
|
}
|
|
44
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
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
|
-
|
|
107
|
+
|
|
108
|
+
export { type KeelGetParams, type KeelKey, KeelKeys, type KeelListParams, type KeelObjectBase, type KeelRealtimePlugin, type OmitKeelBuiltins, type SyncedKeelConfiguration, configureSyncedKeel, generateKeelId, getSyncedKeelConfiguration, syncedKeel };
|