@legendapp/state 3.0.0-beta.43 → 3.0.0-beta.44
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/config/enableReactComponents.d.mts +1 -0
- package/config/enableReactComponents.d.ts +1 -0
- package/config/enableReactNativeComponents.d.mts +1 -0
- package/config/enableReactNativeComponents.d.ts +1 -0
- package/package.json +1 -1
- package/react-hooks/createObservableHook.js +1 -1
- package/react-hooks/createObservableHook.mjs +1 -1
- package/react-reactive/enableReactComponents.d.mts +1 -0
- package/react-reactive/enableReactComponents.d.ts +1 -0
- package/react.d.mts +13 -10
- package/react.d.ts +13 -10
- package/react.js +3 -1
- package/react.mjs +3 -1
- package/sync-plugins/crud.js +12 -2
- package/sync-plugins/crud.mjs +12 -2
- package/sync-plugins/keel.js +1 -1
- package/sync-plugins/keel.mjs +1 -1
- package/sync.d.mts +1 -0
- package/sync.d.ts +1 -0
- package/sync.js +19 -2
- package/sync.mjs +19 -2
- package/types/reactive-web.d.ts +1 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { JSX } from 'react';
|
|
1
2
|
import { FCReactiveObject, FCReactive } from '@legendapp/state/react';
|
|
2
3
|
import { ActivityIndicator, ActivityIndicatorProps, Button, ButtonProps, FlatList, FlatListProps, Image, ImageProps, Pressable, PressableProps, ScrollView, ScrollViewProps, SectionList, SectionListProps, Switch, SwitchProps, Text, TextProps, TextInput, TextInputProps, TouchableWithoutFeedback, TouchableWithoutFeedbackProps, View, ViewProps } from 'react-native';
|
|
3
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { JSX } from 'react';
|
|
1
2
|
import { FCReactiveObject, FCReactive } from '@legendapp/state/react';
|
|
2
3
|
import { ActivityIndicator, ActivityIndicatorProps, Button, ButtonProps, FlatList, FlatListProps, Image, ImageProps, Pressable, PressableProps, ScrollView, ScrollViewProps, SectionList, SectionListProps, Switch, SwitchProps, Text, TextProps, TextInput, TextInputProps, TouchableWithoutFeedback, TouchableWithoutFeedbackProps, View, ViewProps } from 'react-native';
|
|
3
4
|
|
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@ function createObservableHook(fn) {
|
|
|
29
29
|
const _useState = React__default.default.useState;
|
|
30
30
|
const _useReducer = React__default.default.useReducer;
|
|
31
31
|
return function(...args) {
|
|
32
|
-
const refObs = React__default.default.useRef();
|
|
32
|
+
const refObs = React__default.default.useRef(void 0);
|
|
33
33
|
overrideHooks(refObs);
|
|
34
34
|
fn(...args);
|
|
35
35
|
React__default.default.useState = _useState;
|
|
@@ -23,7 +23,7 @@ function createObservableHook(fn) {
|
|
|
23
23
|
const _useState = React.useState;
|
|
24
24
|
const _useReducer = React.useReducer;
|
|
25
25
|
return function(...args) {
|
|
26
|
-
const refObs = React.useRef();
|
|
26
|
+
const refObs = React.useRef(void 0);
|
|
27
27
|
overrideHooks(refObs);
|
|
28
28
|
fn(...args);
|
|
29
29
|
React.useState = _useState;
|
package/react.d.mts
CHANGED
|
@@ -71,18 +71,20 @@ declare function Switch<T>({ value, children, }: {
|
|
|
71
71
|
children: Partial<Record<'undefined' | 'default', () => ReactNode>>;
|
|
72
72
|
}): ReactElement | null;
|
|
73
73
|
|
|
74
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
75
|
+
type ValueOfUnionKey$1<P, K extends PropertyKey> = P extends any ? (K extends keyof P ? P[K] : never) : never;
|
|
74
76
|
type ShapeWithNew$<T> = Partial<Omit<T, 'children'>> & {
|
|
75
77
|
[K in keyof T as K extends `$${string & K}` ? K : `$${string & K}`]?: Selector<T[K]>;
|
|
76
78
|
} & {
|
|
77
79
|
children?: Selector<ReactNode>;
|
|
78
80
|
};
|
|
79
|
-
interface BindKey<P, K extends
|
|
81
|
+
interface BindKey<P, K extends KeysOfUnion<P> = KeysOfUnion<P>> {
|
|
80
82
|
handler?: K;
|
|
81
|
-
getValue?: P
|
|
83
|
+
getValue?: ValueOfUnionKey$1<P, K> extends infer T ? T extends (...args: any) => any ? (params: Parameters<T>[0]) => any : (e: any) => any : (e: any) => any;
|
|
82
84
|
defaultValue?: any;
|
|
83
85
|
selector?: (propsOut: Record<string, any>, p: Observable<any>) => any;
|
|
84
86
|
}
|
|
85
|
-
type BindKeys<P = any, K extends
|
|
87
|
+
type BindKeys<P = any, K extends KeysOfUnion<P> = KeysOfUnion<P>> = Partial<Record<K, BindKey<P, K>>>;
|
|
86
88
|
type FCReactiveObject<T> = {
|
|
87
89
|
[K in keyof T]: FC<ShapeWithNew$<T[K]>>;
|
|
88
90
|
};
|
|
@@ -109,23 +111,24 @@ type ShapeWith$<T> = WithSelectorChildren<Partial<T>> & {
|
|
|
109
111
|
type ObjectShapeWith$<T> = {
|
|
110
112
|
[K in keyof T]: T[K] extends FC<infer P> ? FC<ShapeWith$<P>> : T[K];
|
|
111
113
|
};
|
|
112
|
-
type
|
|
113
|
-
|
|
114
|
+
type ValueOfUnionKey<T, K extends PropertyKey> = T extends any ? (K extends keyof T ? T[K] : never) : never;
|
|
115
|
+
type ReactifyProps<T, K extends KeysOfUnion<T>> = T & {
|
|
116
|
+
[P in K as `$${string & P}`]?: Selector<ValueOfUnionKey<T, P>>;
|
|
114
117
|
};
|
|
115
118
|
declare const hasSymbol: false | ((key: string) => symbol);
|
|
116
119
|
declare function observer<P extends FC<any>>(component: P): P;
|
|
117
120
|
declare function reactive<T extends object>(component: React.ComponentClass<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.FC<ShapeWith$<T>>;
|
|
118
121
|
declare function reactive<T extends object>(component: React.FC<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.FC<ShapeWith$<T>>;
|
|
119
122
|
declare function reactive<T extends object>(component: React.ForwardRefExoticComponent<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
120
|
-
declare function reactive<T extends object, K extends
|
|
121
|
-
declare function reactive<T extends object, K extends
|
|
123
|
+
declare function reactive<T extends object, K extends KeysOfUnion<T>>(component: React.FC<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.FC<ReactifyProps<T, K>>;
|
|
124
|
+
declare function reactive<T extends object, K extends KeysOfUnion<T>>(component: React.ForwardRefExoticComponent<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.ForwardRefExoticComponent<ReactifyProps<T, K>>;
|
|
122
125
|
declare function reactive<T extends object>(component: React.ComponentClass<T>): React.ComponentClass<ShapeWith$<T>>;
|
|
123
126
|
declare function reactive<T extends object>(component: React.FC<T>): React.FC<ShapeWith$<T>>;
|
|
124
127
|
declare function reactive<T extends object>(component: React.ForwardRefExoticComponent<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
125
128
|
declare function reactiveObserver<T extends object>(component: React.FC<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.FC<ShapeWith$<T>>;
|
|
126
129
|
declare function reactiveObserver<T extends object>(component: React.ForwardRefExoticComponent<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
127
|
-
declare function reactiveObserver<T extends object, K extends
|
|
128
|
-
declare function reactiveObserver<T extends object, K extends
|
|
130
|
+
declare function reactiveObserver<T extends object, K extends KeysOfUnion<T>>(component: React.FC<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.FC<ReactifyProps<T, K>>;
|
|
131
|
+
declare function reactiveObserver<T extends object, K extends KeysOfUnion<T>>(component: React.ForwardRefExoticComponent<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.ForwardRefExoticComponent<ReactifyProps<T, K>>;
|
|
129
132
|
declare function reactiveObserver<T extends object>(component: React.FC<T>): React.FC<ShapeWith$<T>>;
|
|
130
133
|
declare function reactiveObserver<T extends object>(component: React.ForwardRefExoticComponent<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
131
134
|
declare function reactiveComponents<P extends Record<string, any>>(components: P): ObjectShapeWith$<P>;
|
|
@@ -192,4 +195,4 @@ declare function configureReactive({ components, binders, }: {
|
|
|
192
195
|
binders?: Record<string, BindKeys>;
|
|
193
196
|
}): void;
|
|
194
197
|
|
|
195
|
-
export { type BindKey, type BindKeys, Computed, type FCReactive, type FCReactiveObject, For, type IReactive, Memo, type ObjectShapeWith$, type ReactifyProps, Reactive, type ShapeWith$, type ShapeWithNew$, Show, Switch, type UseObserveOptions, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useSelector as use$, useComputed, useEffectOnce, useIsMounted, useObservable as useLocalObservable, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useSelector as useValue, useWhen, useWhenReady };
|
|
198
|
+
export { type BindKey, type BindKeys, Computed, type FCReactive, type FCReactiveObject, For, type IReactive, type KeysOfUnion, Memo, type ObjectShapeWith$, type ReactifyProps, Reactive, type ShapeWith$, type ShapeWithNew$, Show, Switch, type UseObserveOptions, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useSelector as use$, useComputed, useEffectOnce, useIsMounted, useObservable as useLocalObservable, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useSelector as useValue, useWhen, useWhenReady };
|
package/react.d.ts
CHANGED
|
@@ -71,18 +71,20 @@ declare function Switch<T>({ value, children, }: {
|
|
|
71
71
|
children: Partial<Record<'undefined' | 'default', () => ReactNode>>;
|
|
72
72
|
}): ReactElement | null;
|
|
73
73
|
|
|
74
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
75
|
+
type ValueOfUnionKey$1<P, K extends PropertyKey> = P extends any ? (K extends keyof P ? P[K] : never) : never;
|
|
74
76
|
type ShapeWithNew$<T> = Partial<Omit<T, 'children'>> & {
|
|
75
77
|
[K in keyof T as K extends `$${string & K}` ? K : `$${string & K}`]?: Selector<T[K]>;
|
|
76
78
|
} & {
|
|
77
79
|
children?: Selector<ReactNode>;
|
|
78
80
|
};
|
|
79
|
-
interface BindKey<P, K extends
|
|
81
|
+
interface BindKey<P, K extends KeysOfUnion<P> = KeysOfUnion<P>> {
|
|
80
82
|
handler?: K;
|
|
81
|
-
getValue?: P
|
|
83
|
+
getValue?: ValueOfUnionKey$1<P, K> extends infer T ? T extends (...args: any) => any ? (params: Parameters<T>[0]) => any : (e: any) => any : (e: any) => any;
|
|
82
84
|
defaultValue?: any;
|
|
83
85
|
selector?: (propsOut: Record<string, any>, p: Observable<any>) => any;
|
|
84
86
|
}
|
|
85
|
-
type BindKeys<P = any, K extends
|
|
87
|
+
type BindKeys<P = any, K extends KeysOfUnion<P> = KeysOfUnion<P>> = Partial<Record<K, BindKey<P, K>>>;
|
|
86
88
|
type FCReactiveObject<T> = {
|
|
87
89
|
[K in keyof T]: FC<ShapeWithNew$<T[K]>>;
|
|
88
90
|
};
|
|
@@ -109,23 +111,24 @@ type ShapeWith$<T> = WithSelectorChildren<Partial<T>> & {
|
|
|
109
111
|
type ObjectShapeWith$<T> = {
|
|
110
112
|
[K in keyof T]: T[K] extends FC<infer P> ? FC<ShapeWith$<P>> : T[K];
|
|
111
113
|
};
|
|
112
|
-
type
|
|
113
|
-
|
|
114
|
+
type ValueOfUnionKey<T, K extends PropertyKey> = T extends any ? (K extends keyof T ? T[K] : never) : never;
|
|
115
|
+
type ReactifyProps<T, K extends KeysOfUnion<T>> = T & {
|
|
116
|
+
[P in K as `$${string & P}`]?: Selector<ValueOfUnionKey<T, P>>;
|
|
114
117
|
};
|
|
115
118
|
declare const hasSymbol: false | ((key: string) => symbol);
|
|
116
119
|
declare function observer<P extends FC<any>>(component: P): P;
|
|
117
120
|
declare function reactive<T extends object>(component: React.ComponentClass<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.FC<ShapeWith$<T>>;
|
|
118
121
|
declare function reactive<T extends object>(component: React.FC<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.FC<ShapeWith$<T>>;
|
|
119
122
|
declare function reactive<T extends object>(component: React.ForwardRefExoticComponent<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
120
|
-
declare function reactive<T extends object, K extends
|
|
121
|
-
declare function reactive<T extends object, K extends
|
|
123
|
+
declare function reactive<T extends object, K extends KeysOfUnion<T>>(component: React.FC<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.FC<ReactifyProps<T, K>>;
|
|
124
|
+
declare function reactive<T extends object, K extends KeysOfUnion<T>>(component: React.ForwardRefExoticComponent<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.ForwardRefExoticComponent<ReactifyProps<T, K>>;
|
|
122
125
|
declare function reactive<T extends object>(component: React.ComponentClass<T>): React.ComponentClass<ShapeWith$<T>>;
|
|
123
126
|
declare function reactive<T extends object>(component: React.FC<T>): React.FC<ShapeWith$<T>>;
|
|
124
127
|
declare function reactive<T extends object>(component: React.ForwardRefExoticComponent<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
125
128
|
declare function reactiveObserver<T extends object>(component: React.FC<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.FC<ShapeWith$<T>>;
|
|
126
129
|
declare function reactiveObserver<T extends object>(component: React.ForwardRefExoticComponent<T>, keys: undefined | null, bindKeys?: BindKeys<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
127
|
-
declare function reactiveObserver<T extends object, K extends
|
|
128
|
-
declare function reactiveObserver<T extends object, K extends
|
|
130
|
+
declare function reactiveObserver<T extends object, K extends KeysOfUnion<T>>(component: React.FC<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.FC<ReactifyProps<T, K>>;
|
|
131
|
+
declare function reactiveObserver<T extends object, K extends KeysOfUnion<T>>(component: React.ForwardRefExoticComponent<T>, keys: K[] | KeysOfUnion<T>[], bindKeys?: BindKeys<T, K>): React.ForwardRefExoticComponent<ReactifyProps<T, K>>;
|
|
129
132
|
declare function reactiveObserver<T extends object>(component: React.FC<T>): React.FC<ShapeWith$<T>>;
|
|
130
133
|
declare function reactiveObserver<T extends object>(component: React.ForwardRefExoticComponent<T>): React.ForwardRefExoticComponent<ShapeWith$<T>>;
|
|
131
134
|
declare function reactiveComponents<P extends Record<string, any>>(components: P): ObjectShapeWith$<P>;
|
|
@@ -192,4 +195,4 @@ declare function configureReactive({ components, binders, }: {
|
|
|
192
195
|
binders?: Record<string, BindKeys>;
|
|
193
196
|
}): void;
|
|
194
197
|
|
|
195
|
-
export { type BindKey, type BindKeys, Computed, type FCReactive, type FCReactiveObject, For, type IReactive, Memo, type ObjectShapeWith$, type ReactifyProps, Reactive, type ShapeWith$, type ShapeWithNew$, Show, Switch, type UseObserveOptions, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useSelector as use$, useComputed, useEffectOnce, useIsMounted, useObservable as useLocalObservable, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useSelector as useValue, useWhen, useWhenReady };
|
|
198
|
+
export { type BindKey, type BindKeys, Computed, type FCReactive, type FCReactiveObject, For, type IReactive, type KeysOfUnion, Memo, type ObjectShapeWith$, type ReactifyProps, Reactive, type ShapeWith$, type ShapeWithNew$, Show, Switch, type UseObserveOptions, type UseSelectorOptions, configureReactive, hasSymbol, observer, reactive, reactiveComponents, reactiveObserver, useSelector as use$, useComputed, useEffectOnce, useIsMounted, useObservable as useLocalObservable, useMount, useMountOnce, useObservable, useObservableReducer, useObserve, useObserveEffect, usePauseProvider, useSelector, useUnmount, useUnmountOnce, useSelector as useValue, useWhen, useWhenReady };
|
package/react.js
CHANGED
|
@@ -286,7 +286,9 @@ function For({
|
|
|
286
286
|
return null;
|
|
287
287
|
const value = useSelector(() => each.get(isOptimized ? optimized : true));
|
|
288
288
|
if (!item && children) {
|
|
289
|
-
const refChildren = React.useRef(
|
|
289
|
+
const refChildren = React.useRef(
|
|
290
|
+
void 0
|
|
291
|
+
);
|
|
290
292
|
refChildren.current = children;
|
|
291
293
|
item = React.useMemo(() => observer(({ item$, id }) => refChildren.current(item$, id)), []);
|
|
292
294
|
} else {
|
package/react.mjs
CHANGED
|
@@ -280,7 +280,9 @@ function For({
|
|
|
280
280
|
return null;
|
|
281
281
|
const value = useSelector(() => each.get(isOptimized ? optimized : true));
|
|
282
282
|
if (!item && children) {
|
|
283
|
-
const refChildren = useRef(
|
|
283
|
+
const refChildren = useRef(
|
|
284
|
+
void 0
|
|
285
|
+
);
|
|
284
286
|
refChildren.current = children;
|
|
285
287
|
item = useMemo(() => observer(({ item$, id }) => refChildren.current(item$, id)), []);
|
|
286
288
|
} else {
|
package/sync-plugins/crud.js
CHANGED
|
@@ -18,11 +18,21 @@ function ensureId(obj, fieldId, generateId, node) {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
function computeLastSync(data, fieldUpdatedAt, fieldCreatedAt) {
|
|
21
|
+
if (!state.isArray(data) || data.length === 0) {
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
21
24
|
let newLastSync = 0;
|
|
22
25
|
for (let i = 0; i < data.length; i++) {
|
|
23
|
-
const
|
|
26
|
+
const row = data[i];
|
|
27
|
+
if (!row || typeof row !== "object") {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const updated = (fieldUpdatedAt ? row[fieldUpdatedAt] : 0) || (fieldCreatedAt ? row[fieldCreatedAt] : 0);
|
|
24
31
|
if (updated) {
|
|
25
|
-
|
|
32
|
+
const updatedTime = +new Date(updated);
|
|
33
|
+
if (!Number.isNaN(updatedTime)) {
|
|
34
|
+
newLastSync = Math.max(newLastSync, updatedTime);
|
|
35
|
+
}
|
|
26
36
|
}
|
|
27
37
|
}
|
|
28
38
|
return newLastSync;
|
package/sync-plugins/crud.mjs
CHANGED
|
@@ -16,11 +16,21 @@ function ensureId(obj, fieldId, generateId, node) {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
function computeLastSync(data, fieldUpdatedAt, fieldCreatedAt) {
|
|
19
|
+
if (!isArray(data) || data.length === 0) {
|
|
20
|
+
return 0;
|
|
21
|
+
}
|
|
19
22
|
let newLastSync = 0;
|
|
20
23
|
for (let i = 0; i < data.length; i++) {
|
|
21
|
-
const
|
|
24
|
+
const row = data[i];
|
|
25
|
+
if (!row || typeof row !== "object") {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const updated = (fieldUpdatedAt ? row[fieldUpdatedAt] : 0) || (fieldCreatedAt ? row[fieldCreatedAt] : 0);
|
|
22
29
|
if (updated) {
|
|
23
|
-
|
|
30
|
+
const updatedTime = +new Date(updated);
|
|
31
|
+
if (!Number.isNaN(updatedTime)) {
|
|
32
|
+
newLastSync = Math.max(newLastSync, updatedTime);
|
|
33
|
+
}
|
|
24
34
|
}
|
|
25
35
|
}
|
|
26
36
|
return newLastSync;
|
package/sync-plugins/keel.js
CHANGED
|
@@ -81,7 +81,7 @@ function setupRealtime(props) {
|
|
|
81
81
|
modifiedClients.add(client);
|
|
82
82
|
const originalRawRequest = client.client.rawRequest;
|
|
83
83
|
client.client.rawRequest = (action, body) => {
|
|
84
|
-
if (action.startsWith("list")) {
|
|
84
|
+
if (action.startsWith("list") || action.startsWith("get")) {
|
|
85
85
|
realtimeState.current = {
|
|
86
86
|
lastAction: action,
|
|
87
87
|
lastParams: body
|
package/sync-plugins/keel.mjs
CHANGED
|
@@ -79,7 +79,7 @@ function setupRealtime(props) {
|
|
|
79
79
|
modifiedClients.add(client);
|
|
80
80
|
const originalRawRequest = client.client.rawRequest;
|
|
81
81
|
client.client.rawRequest = (action, body) => {
|
|
82
|
-
if (action.startsWith("list")) {
|
|
82
|
+
if (action.startsWith("list") || action.startsWith("get")) {
|
|
83
83
|
realtimeState.current = {
|
|
84
84
|
lastAction: action,
|
|
85
85
|
lastParams: body
|
package/sync.d.mts
CHANGED
|
@@ -46,6 +46,7 @@ interface SyncedSubscribeParams<T = any> extends SyncedGetSetSubscribeBaseParams
|
|
|
46
46
|
onError: (error: Error) => void;
|
|
47
47
|
}
|
|
48
48
|
interface SyncedErrorParams {
|
|
49
|
+
syncOptions?: Readonly<SyncedOptions<any>>;
|
|
49
50
|
source: 'get' | 'set' | 'subscribe';
|
|
50
51
|
type: 'get' | 'set';
|
|
51
52
|
retry: OnErrorRetryParams;
|
package/sync.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ interface SyncedSubscribeParams<T = any> extends SyncedGetSetSubscribeBaseParams
|
|
|
46
46
|
onError: (error: Error) => void;
|
|
47
47
|
}
|
|
48
48
|
interface SyncedErrorParams {
|
|
49
|
+
syncOptions?: Readonly<SyncedOptions<any>>;
|
|
49
50
|
source: 'get' | 'set' | 'subscribe';
|
|
50
51
|
type: 'get' | 'set';
|
|
51
52
|
retry: OnErrorRetryParams;
|
package/sync.js
CHANGED
|
@@ -685,6 +685,7 @@ async function doChangeRemote(changeInfo) {
|
|
|
685
685
|
if (lastErrorHandled !== error) {
|
|
686
686
|
if (!params) {
|
|
687
687
|
params = {
|
|
688
|
+
syncOptions,
|
|
688
689
|
setParams,
|
|
689
690
|
source: "set",
|
|
690
691
|
type: "set",
|
|
@@ -692,6 +693,11 @@ async function doChangeRemote(changeInfo) {
|
|
|
692
693
|
retry: setParams,
|
|
693
694
|
revert: createRevertChanges(setParams.value$, setParams.changes)
|
|
694
695
|
};
|
|
696
|
+
} else if (!params.syncOptions) {
|
|
697
|
+
params = {
|
|
698
|
+
...params,
|
|
699
|
+
syncOptions
|
|
700
|
+
};
|
|
695
701
|
}
|
|
696
702
|
state$.error.set(error);
|
|
697
703
|
(_a2 = syncOptions.onError) == null ? void 0 : _a2.call(syncOptions, error, params);
|
|
@@ -1017,9 +1023,15 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
1017
1023
|
if (lastErrorHandled !== error) {
|
|
1018
1024
|
if (!params) {
|
|
1019
1025
|
params = {
|
|
1026
|
+
syncOptions,
|
|
1020
1027
|
source: "get",
|
|
1021
1028
|
type: "get",
|
|
1022
|
-
retry:
|
|
1029
|
+
retry: { retryNum: 0, cancelRetry: false }
|
|
1030
|
+
};
|
|
1031
|
+
} else if (!params.syncOptions) {
|
|
1032
|
+
params = {
|
|
1033
|
+
...params,
|
|
1034
|
+
syncOptions
|
|
1023
1035
|
};
|
|
1024
1036
|
}
|
|
1025
1037
|
syncState$.error.set(error);
|
|
@@ -1211,6 +1223,7 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
1211
1223
|
refresh: () => state.when(syncState$.isLoaded, callSync),
|
|
1212
1224
|
onError: (error) => onGetError(error, {
|
|
1213
1225
|
source: "subscribe",
|
|
1226
|
+
syncOptions,
|
|
1214
1227
|
subscribeParams,
|
|
1215
1228
|
type: "get",
|
|
1216
1229
|
retry: {}
|
|
@@ -1309,7 +1322,11 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
1309
1322
|
};
|
|
1310
1323
|
if (state.isPromise(got)) {
|
|
1311
1324
|
got.then(handle).catch((error) => {
|
|
1312
|
-
onGetError(
|
|
1325
|
+
onGetError(
|
|
1326
|
+
error,
|
|
1327
|
+
{ getParams, syncOptions, source: "get", type: "get", retry: getParams },
|
|
1328
|
+
true
|
|
1329
|
+
);
|
|
1313
1330
|
});
|
|
1314
1331
|
} else {
|
|
1315
1332
|
handle(got);
|
package/sync.mjs
CHANGED
|
@@ -683,6 +683,7 @@ async function doChangeRemote(changeInfo) {
|
|
|
683
683
|
if (lastErrorHandled !== error) {
|
|
684
684
|
if (!params) {
|
|
685
685
|
params = {
|
|
686
|
+
syncOptions,
|
|
686
687
|
setParams,
|
|
687
688
|
source: "set",
|
|
688
689
|
type: "set",
|
|
@@ -690,6 +691,11 @@ async function doChangeRemote(changeInfo) {
|
|
|
690
691
|
retry: setParams,
|
|
691
692
|
revert: createRevertChanges(setParams.value$, setParams.changes)
|
|
692
693
|
};
|
|
694
|
+
} else if (!params.syncOptions) {
|
|
695
|
+
params = {
|
|
696
|
+
...params,
|
|
697
|
+
syncOptions
|
|
698
|
+
};
|
|
693
699
|
}
|
|
694
700
|
state$.error.set(error);
|
|
695
701
|
(_a2 = syncOptions.onError) == null ? void 0 : _a2.call(syncOptions, error, params);
|
|
@@ -1015,9 +1021,15 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
1015
1021
|
if (lastErrorHandled !== error) {
|
|
1016
1022
|
if (!params) {
|
|
1017
1023
|
params = {
|
|
1024
|
+
syncOptions,
|
|
1018
1025
|
source: "get",
|
|
1019
1026
|
type: "get",
|
|
1020
|
-
retry:
|
|
1027
|
+
retry: { retryNum: 0, cancelRetry: false }
|
|
1028
|
+
};
|
|
1029
|
+
} else if (!params.syncOptions) {
|
|
1030
|
+
params = {
|
|
1031
|
+
...params,
|
|
1032
|
+
syncOptions
|
|
1021
1033
|
};
|
|
1022
1034
|
}
|
|
1023
1035
|
syncState$.error.set(error);
|
|
@@ -1209,6 +1221,7 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
1209
1221
|
refresh: () => when(syncState$.isLoaded, callSync),
|
|
1210
1222
|
onError: (error) => onGetError(error, {
|
|
1211
1223
|
source: "subscribe",
|
|
1224
|
+
syncOptions,
|
|
1212
1225
|
subscribeParams,
|
|
1213
1226
|
type: "get",
|
|
1214
1227
|
retry: {}
|
|
@@ -1307,7 +1320,11 @@ function syncObservable(obs$, syncOptionsOrSynced) {
|
|
|
1307
1320
|
};
|
|
1308
1321
|
if (isPromise$1(got)) {
|
|
1309
1322
|
got.then(handle).catch((error) => {
|
|
1310
|
-
onGetError(
|
|
1323
|
+
onGetError(
|
|
1324
|
+
error,
|
|
1325
|
+
{ getParams, syncOptions, source: "get", type: "get", retry: getParams },
|
|
1326
|
+
true
|
|
1327
|
+
);
|
|
1311
1328
|
});
|
|
1312
1329
|
} else {
|
|
1313
1330
|
handle(got);
|
package/types/reactive-web.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2
2
|
import type { IReactive, FCReactiveObject } from '@legendapp/state/react';
|
|
3
|
+
import type { JSX } from 'react';
|
|
3
4
|
|
|
4
5
|
declare module '@legendapp/state/react' {
|
|
5
6
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|