@legendapp/state 3.0.0-beta.4 → 3.0.0-beta.6
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/index.js +1 -1
- package/index.mjs +1 -1
- package/package.json +1 -1
- package/react.d.mts +4 -2
- package/react.d.ts +4 -2
- package/sync-plugins/supabase.js +14 -6
- package/sync-plugins/supabase.mjs +14 -6
- package/sync-plugins/tanstack-query.d.mts +3 -3
- package/sync-plugins/tanstack-query.d.ts +3 -3
package/index.js
CHANGED
|
@@ -384,7 +384,7 @@ function _mergeIntoObservable(target, source, levelsDeep) {
|
|
|
384
384
|
const isSourceSet = isSet(source);
|
|
385
385
|
if (isSourceSet && isSet(targetValue)) {
|
|
386
386
|
target.set(/* @__PURE__ */ new Set([...source, ...targetValue]));
|
|
387
|
-
} else if (isTargetObj && isObject(source)
|
|
387
|
+
} else if (isTargetObj && isObject(source) || isTargetArr && targetValue.length > 0) {
|
|
388
388
|
const keys = isSourceMap || isSourceSet ? Array.from(source.keys()) : Object.keys(source);
|
|
389
389
|
for (let i = 0; i < keys.length; i++) {
|
|
390
390
|
const key = keys[i];
|
package/index.mjs
CHANGED
|
@@ -382,7 +382,7 @@ function _mergeIntoObservable(target, source, levelsDeep) {
|
|
|
382
382
|
const isSourceSet = isSet(source);
|
|
383
383
|
if (isSourceSet && isSet(targetValue)) {
|
|
384
384
|
target.set(/* @__PURE__ */ new Set([...source, ...targetValue]));
|
|
385
|
-
} else if (isTargetObj && isObject(source)
|
|
385
|
+
} else if (isTargetObj && isObject(source) || isTargetArr && targetValue.length > 0) {
|
|
386
386
|
const keys = isSourceMap || isSourceSet ? Array.from(source.keys()) : Object.keys(source);
|
|
387
387
|
for (let i = 0; i < keys.length; i++) {
|
|
388
388
|
const key = keys[i];
|
package/package.json
CHANGED
package/react.d.mts
CHANGED
|
@@ -151,8 +151,10 @@ declare function useSelector<T>(selector: Selector<T>, options?: UseSelectorOpti
|
|
|
151
151
|
declare function useUnmount(fn: () => void): void;
|
|
152
152
|
declare const useUnmountOnce: typeof useUnmount;
|
|
153
153
|
|
|
154
|
-
declare function useWhen<T>(predicate: Selector<T
|
|
155
|
-
declare function
|
|
154
|
+
declare function useWhen<T>(predicate: Selector<T>): Promise<T>;
|
|
155
|
+
declare function useWhen<T, T2>(predicate: Selector<T>, effect: (value: T) => T2): Promise<T2>;
|
|
156
|
+
declare function useWhenReady<T>(predicate: Selector<T>): Promise<T>;
|
|
157
|
+
declare function useWhenReady<T, T2>(predicate: Selector<T>, effect: (value: T) => T2 | (() => T2)): Promise<T2>;
|
|
156
158
|
|
|
157
159
|
declare function configureReactive({ components, binders, }: {
|
|
158
160
|
components?: Record<string, FC | ComponentClass<any>>;
|
package/react.d.ts
CHANGED
|
@@ -151,8 +151,10 @@ declare function useSelector<T>(selector: Selector<T>, options?: UseSelectorOpti
|
|
|
151
151
|
declare function useUnmount(fn: () => void): void;
|
|
152
152
|
declare const useUnmountOnce: typeof useUnmount;
|
|
153
153
|
|
|
154
|
-
declare function useWhen<T>(predicate: Selector<T
|
|
155
|
-
declare function
|
|
154
|
+
declare function useWhen<T>(predicate: Selector<T>): Promise<T>;
|
|
155
|
+
declare function useWhen<T, T2>(predicate: Selector<T>, effect: (value: T) => T2): Promise<T2>;
|
|
156
|
+
declare function useWhenReady<T>(predicate: Selector<T>): Promise<T>;
|
|
157
|
+
declare function useWhenReady<T, T2>(predicate: Selector<T>, effect: (value: T) => T2 | (() => T2)): Promise<T2>;
|
|
156
158
|
|
|
157
159
|
declare function configureReactive({ components, binders, }: {
|
|
158
160
|
components?: Record<string, FC | ComponentClass<any>>;
|
package/sync-plugins/supabase.js
CHANGED
|
@@ -36,9 +36,9 @@ function syncedSupabase(props) {
|
|
|
36
36
|
schema,
|
|
37
37
|
filter,
|
|
38
38
|
actions,
|
|
39
|
-
fieldCreatedAt
|
|
40
|
-
fieldUpdatedAt
|
|
41
|
-
fieldDeleted
|
|
39
|
+
fieldCreatedAt,
|
|
40
|
+
fieldUpdatedAt,
|
|
41
|
+
fieldDeleted,
|
|
42
42
|
realtime,
|
|
43
43
|
changesSince,
|
|
44
44
|
transform: transformParam,
|
|
@@ -54,9 +54,17 @@ function syncedSupabase(props) {
|
|
|
54
54
|
...rest
|
|
55
55
|
} = props;
|
|
56
56
|
const client = supabase;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
if (process.env.NODE_ENV === "development" && changesSince === "last-sync") {
|
|
58
|
+
if (!fieldCreatedAt) {
|
|
59
|
+
console.warn("[legend-state] fieldCreatedAt is required when using last-sync mode");
|
|
60
|
+
}
|
|
61
|
+
if (!fieldUpdatedAt) {
|
|
62
|
+
console.warn("[legend-state] fieldUpdatedAt is required when using last-sync mode");
|
|
63
|
+
}
|
|
64
|
+
if (!fieldDeleted) {
|
|
65
|
+
console.warn("[legend-state] fieldDeleted is required when using last-sync mode");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
60
68
|
const list = !actions || actions.includes("read") ? listParam ? wrapSupabaseFn(listParam) : async (params) => {
|
|
61
69
|
const { lastSync } = params;
|
|
62
70
|
const clientSchema = schema ? client.schema(schema) : client;
|
|
@@ -34,9 +34,9 @@ function syncedSupabase(props) {
|
|
|
34
34
|
schema,
|
|
35
35
|
filter,
|
|
36
36
|
actions,
|
|
37
|
-
fieldCreatedAt
|
|
38
|
-
fieldUpdatedAt
|
|
39
|
-
fieldDeleted
|
|
37
|
+
fieldCreatedAt,
|
|
38
|
+
fieldUpdatedAt,
|
|
39
|
+
fieldDeleted,
|
|
40
40
|
realtime,
|
|
41
41
|
changesSince,
|
|
42
42
|
transform: transformParam,
|
|
@@ -52,9 +52,17 @@ function syncedSupabase(props) {
|
|
|
52
52
|
...rest
|
|
53
53
|
} = props;
|
|
54
54
|
const client = supabase;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
if (process.env.NODE_ENV === "development" && changesSince === "last-sync") {
|
|
56
|
+
if (!fieldCreatedAt) {
|
|
57
|
+
console.warn("[legend-state] fieldCreatedAt is required when using last-sync mode");
|
|
58
|
+
}
|
|
59
|
+
if (!fieldUpdatedAt) {
|
|
60
|
+
console.warn("[legend-state] fieldUpdatedAt is required when using last-sync mode");
|
|
61
|
+
}
|
|
62
|
+
if (!fieldDeleted) {
|
|
63
|
+
console.warn("[legend-state] fieldDeleted is required when using last-sync mode");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
58
66
|
const list = !actions || actions.includes("read") ? listParam ? wrapSupabaseFn(listParam) : async (params) => {
|
|
59
67
|
const { lastSync } = params;
|
|
60
68
|
const clientSchema = schema ? client.schema(schema) : client;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SyncedOptions } from '@legendapp/state/sync';
|
|
1
|
+
import { SyncedOptions, Synced } from '@legendapp/state/sync';
|
|
2
2
|
import { QueryKey, QueryObserverOptions, QueryClient, MutationObserverOptions, DefaultError } from '@tanstack/query-core';
|
|
3
3
|
|
|
4
4
|
interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TData, TQueryKey>, 'queryKey'> {
|
|
@@ -7,8 +7,8 @@ interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends
|
|
|
7
7
|
interface SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<SyncedOptions<TData>, 'get' | 'set' | 'retry'> {
|
|
8
8
|
queryClient: QueryClient;
|
|
9
9
|
query: ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey>;
|
|
10
|
-
mutation?: MutationObserverOptions<
|
|
10
|
+
mutation?: MutationObserverOptions<TQueryFnData, TError, TData>;
|
|
11
11
|
}
|
|
12
|
-
declare function syncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>): TData
|
|
12
|
+
declare function syncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>): Synced<TData>;
|
|
13
13
|
|
|
14
14
|
export { type ObservableQueryOptions, type SyncedQueryParams, syncedQuery };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SyncedOptions } from '@legendapp/state/sync';
|
|
1
|
+
import { SyncedOptions, Synced } from '@legendapp/state/sync';
|
|
2
2
|
import { QueryKey, QueryObserverOptions, QueryClient, MutationObserverOptions, DefaultError } from '@tanstack/query-core';
|
|
3
3
|
|
|
4
4
|
interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TData, TQueryKey>, 'queryKey'> {
|
|
@@ -7,8 +7,8 @@ interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends
|
|
|
7
7
|
interface SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<SyncedOptions<TData>, 'get' | 'set' | 'retry'> {
|
|
8
8
|
queryClient: QueryClient;
|
|
9
9
|
query: ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey>;
|
|
10
|
-
mutation?: MutationObserverOptions<
|
|
10
|
+
mutation?: MutationObserverOptions<TQueryFnData, TError, TData>;
|
|
11
11
|
}
|
|
12
|
-
declare function syncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>): TData
|
|
12
|
+
declare function syncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>): Synced<TData>;
|
|
13
13
|
|
|
14
14
|
export { type ObservableQueryOptions, type SyncedQueryParams, syncedQuery };
|