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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legendapp/state",
3
- "version": "3.0.0-beta.1",
3
+ "version": "3.0.0-beta.3",
4
4
  "description": "legend-state",
5
5
  "sideEffects": false,
6
6
  "private": false,
@@ -1,10 +1,10 @@
1
1
  import { SyncedOptions } from '@legendapp/state/sync';
2
2
  import { QueryKey, QueryObserverOptions, QueryClient, MutationObserverOptions, DefaultError } from '@tanstack/query-core';
3
3
 
4
- interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey'> {
4
+ interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TData, TQueryKey>, 'queryKey'> {
5
5
  queryKey?: TQueryKey | (() => TQueryKey);
6
6
  }
7
- interface SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<SyncedOptions<TData>, 'get' | 'set'> {
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
10
  mutation?: MutationObserverOptions<TData, TError, void>;
@@ -1,10 +1,10 @@
1
1
  import { SyncedOptions } from '@legendapp/state/sync';
2
2
  import { QueryKey, QueryObserverOptions, QueryClient, MutationObserverOptions, DefaultError } from '@tanstack/query-core';
3
3
 
4
- interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey'> {
4
+ interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TData, TQueryKey>, 'queryKey'> {
5
5
  queryKey?: TQueryKey | (() => TQueryKey);
6
6
  }
7
- interface SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<SyncedOptions<TData>, 'get' | 'set'> {
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
10
  mutation?: MutationObserverOptions<TData, TError, void>;
@@ -5,8 +5,14 @@ var sync = require('@legendapp/state/sync');
5
5
  var queryCore = require('@tanstack/query-core');
6
6
 
7
7
  // src/sync-plugins/tanstack-query.ts
8
+ var nextMutationKey = 0;
8
9
  function syncedQuery(params) {
9
- const { query: options, mutation: mutationOptions, queryClient, ...rest } = params;
10
+ const { query: options, mutation: mutationOptions, queryClient, initial: initialParam, ...rest } = params;
11
+ if (initialParam !== void 0) {
12
+ const initialValue = state.isFunction(initialParam) ? initialParam() : initialParam;
13
+ options.initialData = initialValue;
14
+ }
15
+ const initial = options.initialData;
10
16
  const Observer = queryCore.QueryObserver;
11
17
  const defaultedOptions = queryClient.defaultQueryOptions(
12
18
  options
@@ -66,8 +72,16 @@ function syncedQuery(params) {
66
72
  };
67
73
  let set = void 0;
68
74
  if (mutationOptions) {
69
- const mutator = new queryCore.MutationObserver(queryClient, mutationOptions);
75
+ const options2 = {
76
+ mutationKey: ["LS-mutation", nextMutationKey++],
77
+ ...mutationOptions
78
+ };
79
+ const mutator = new queryCore.MutationObserver(queryClient, options2);
70
80
  set = ({ value }) => {
81
+ const mutationCache = queryClient.getMutationCache();
82
+ mutationCache.findAll({ mutationKey: options2.mutationKey }).forEach((mutation) => {
83
+ mutationCache.remove(mutation);
84
+ });
71
85
  return mutator.mutate(value);
72
86
  };
73
87
  }
@@ -75,6 +89,7 @@ function syncedQuery(params) {
75
89
  get,
76
90
  set,
77
91
  subscribe,
92
+ initial,
78
93
  ...rest
79
94
  });
80
95
  }
@@ -3,8 +3,14 @@ import { synced } from '@legendapp/state/sync';
3
3
  import { MutationObserver, QueryObserver, notifyManager } from '@tanstack/query-core';
4
4
 
5
5
  // src/sync-plugins/tanstack-query.ts
6
+ var nextMutationKey = 0;
6
7
  function syncedQuery(params) {
7
- const { query: options, mutation: mutationOptions, queryClient, ...rest } = params;
8
+ const { query: options, mutation: mutationOptions, queryClient, initial: initialParam, ...rest } = params;
9
+ if (initialParam !== void 0) {
10
+ const initialValue = isFunction(initialParam) ? initialParam() : initialParam;
11
+ options.initialData = initialValue;
12
+ }
13
+ const initial = options.initialData;
8
14
  const Observer = QueryObserver;
9
15
  const defaultedOptions = queryClient.defaultQueryOptions(
10
16
  options
@@ -64,8 +70,16 @@ function syncedQuery(params) {
64
70
  };
65
71
  let set = void 0;
66
72
  if (mutationOptions) {
67
- const mutator = new MutationObserver(queryClient, mutationOptions);
73
+ const options2 = {
74
+ mutationKey: ["LS-mutation", nextMutationKey++],
75
+ ...mutationOptions
76
+ };
77
+ const mutator = new MutationObserver(queryClient, options2);
68
78
  set = ({ value }) => {
79
+ const mutationCache = queryClient.getMutationCache();
80
+ mutationCache.findAll({ mutationKey: options2.mutationKey }).forEach((mutation) => {
81
+ mutationCache.remove(mutation);
82
+ });
69
83
  return mutator.mutate(value);
70
84
  };
71
85
  }
@@ -73,6 +87,7 @@ function syncedQuery(params) {
73
87
  get,
74
88
  set,
75
89
  subscribe,
90
+ initial,
76
91
  ...rest
77
92
  });
78
93
  }
@@ -1,8 +1,10 @@
1
1
  import { SyncedQueryParams } from '@legendapp/state/sync-plugins/tanstack-query';
2
- import { DefaultError, QueryKey } from '@tanstack/query-core';
2
+ import { DefaultError, QueryKey, QueryClient } from '@tanstack/query-core';
3
3
  import { Observable } from '@legendapp/state';
4
4
  import { Synced } from '@legendapp/state/sync';
5
5
 
6
- declare function useObservableSyncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>): Observable<Synced<TData>>;
6
+ declare function useObservableSyncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: Omit<SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>, 'queryClient'> & {
7
+ queryClient?: QueryClient;
8
+ }): Observable<Synced<TData>>;
7
9
 
8
10
  export { useObservableSyncedQuery };
@@ -1,8 +1,10 @@
1
1
  import { SyncedQueryParams } from '@legendapp/state/sync-plugins/tanstack-query';
2
- import { DefaultError, QueryKey } from '@tanstack/query-core';
2
+ import { DefaultError, QueryKey, QueryClient } from '@tanstack/query-core';
3
3
  import { Observable } from '@legendapp/state';
4
4
  import { Synced } from '@legendapp/state/sync';
5
5
 
6
- declare function useObservableSyncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>): Observable<Synced<TData>>;
6
+ declare function useObservableSyncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: Omit<SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>, 'queryClient'> & {
7
+ queryClient?: QueryClient;
8
+ }): Observable<Synced<TData>>;
7
9
 
8
10
  export { useObservableSyncedQuery };