@tanstack/query-core 4.0.8 → 4.1.0
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/build/cjs/mutationCache.js.map +1 -1
- package/build/cjs/mutationObserver.js +10 -0
- package/build/cjs/mutationObserver.js.map +1 -1
- package/build/cjs/queryCache.js.map +1 -1
- package/build/cjs/queryClient.js +2 -6
- package/build/cjs/queryClient.js.map +1 -1
- package/build/cjs/queryObserver.js +8 -0
- package/build/cjs/queryObserver.js.map +1 -1
- package/build/esm/index.js +19 -6
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats.json +235 -229
- package/build/types/packages/query-core/src/mutationCache.d.ts +6 -1
- package/build/types/packages/query-core/src/queryCache.d.ts +6 -1
- package/build/umd/index.development.js +19 -6
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/mutationCache.ts +7 -0
- package/src/mutationObserver.ts +9 -0
- package/src/queryCache.ts +7 -0
- package/src/queryClient.ts +10 -14
- package/src/queryObserver.ts +8 -0
- package/src/tests/queryObserver.test.tsx +19 -0
|
@@ -27,12 +27,17 @@ interface NotifyEventMutationObserverRemoved {
|
|
|
27
27
|
mutation: Mutation<any, any, any, any>;
|
|
28
28
|
observer: MutationObserver<any, any, any>;
|
|
29
29
|
}
|
|
30
|
+
interface NotifyEventMutationObserverOptionsUpdated {
|
|
31
|
+
type: 'observerOptionsUpdated';
|
|
32
|
+
mutation?: Mutation<any, any, any, any>;
|
|
33
|
+
observer: MutationObserver<any, any, any, any>;
|
|
34
|
+
}
|
|
30
35
|
interface NotifyEventMutationUpdated {
|
|
31
36
|
type: 'updated';
|
|
32
37
|
mutation: Mutation<any, any, any, any>;
|
|
33
38
|
action: Action<any, any, any, any>;
|
|
34
39
|
}
|
|
35
|
-
declare type MutationCacheNotifyEvent = NotifyEventMutationAdded | NotifyEventMutationRemoved | NotifyEventMutationObserverAdded | NotifyEventMutationObserverRemoved | NotifyEventMutationUpdated;
|
|
40
|
+
declare type MutationCacheNotifyEvent = NotifyEventMutationAdded | NotifyEventMutationRemoved | NotifyEventMutationObserverAdded | NotifyEventMutationObserverRemoved | NotifyEventMutationObserverOptionsUpdated | NotifyEventMutationUpdated;
|
|
36
41
|
declare type MutationCacheListener = (event: MutationCacheNotifyEvent) => void;
|
|
37
42
|
export declare class MutationCache extends Subscribable<MutationCacheListener> {
|
|
38
43
|
config: MutationCacheConfig;
|
|
@@ -35,7 +35,12 @@ interface NotifyEventQueryObserverResultsUpdated {
|
|
|
35
35
|
type: 'observerResultsUpdated';
|
|
36
36
|
query: Query<any, any, any, any>;
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
interface NotifyEventQueryObserverOptionsUpdated {
|
|
39
|
+
type: 'observerOptionsUpdated';
|
|
40
|
+
query: Query<any, any, any, any>;
|
|
41
|
+
observer: QueryObserver<any, any, any, any, any>;
|
|
42
|
+
}
|
|
43
|
+
declare type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventQueryObserverAdded | NotifyEventQueryObserverRemoved | NotifyEventQueryObserverResultsUpdated | NotifyEventQueryObserverOptionsUpdated;
|
|
39
44
|
declare type QueryCacheListener = (event: QueryCacheNotifyEvent) => void;
|
|
40
45
|
export declare class QueryCache extends Subscribable<QueryCacheListener> {
|
|
41
46
|
config: QueryCacheConfig;
|
|
@@ -2063,9 +2063,7 @@
|
|
|
2063
2063
|
const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key
|
|
2064
2064
|
|
|
2065
2065
|
if (matchingDefaults.length > 1) {
|
|
2066
|
-
|
|
2067
|
-
this.logger.error("[QueryClient] Several query defaults match with key '" + JSON.stringify(queryKey) + "'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.");
|
|
2068
|
-
}
|
|
2066
|
+
this.logger.error("[QueryClient] Several query defaults match with key '" + JSON.stringify(queryKey) + "'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.");
|
|
2069
2067
|
}
|
|
2070
2068
|
}
|
|
2071
2069
|
|
|
@@ -2098,9 +2096,7 @@
|
|
|
2098
2096
|
const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key
|
|
2099
2097
|
|
|
2100
2098
|
if (matchingDefaults.length > 1) {
|
|
2101
|
-
|
|
2102
|
-
this.logger.error("[QueryClient] Several mutation defaults match with key '" + JSON.stringify(mutationKey) + "'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.");
|
|
2103
|
-
}
|
|
2099
|
+
this.logger.error("[QueryClient] Several mutation defaults match with key '" + JSON.stringify(mutationKey) + "'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.");
|
|
2104
2100
|
}
|
|
2105
2101
|
}
|
|
2106
2102
|
|
|
@@ -2207,6 +2203,14 @@
|
|
|
2207
2203
|
const prevQuery = this.currentQuery;
|
|
2208
2204
|
this.options = this.client.defaultQueryOptions(options);
|
|
2209
2205
|
|
|
2206
|
+
if (!shallowEqualObjects(prevOptions, this.options)) {
|
|
2207
|
+
this.client.getQueryCache().notify({
|
|
2208
|
+
type: 'observerOptionsUpdated',
|
|
2209
|
+
query: this.currentQuery,
|
|
2210
|
+
observer: this
|
|
2211
|
+
});
|
|
2212
|
+
}
|
|
2213
|
+
|
|
2210
2214
|
if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {
|
|
2211
2215
|
throw new Error('Expected enabled to be a boolean');
|
|
2212
2216
|
} // Keep previous query key if the user does not supply one
|
|
@@ -2890,7 +2894,16 @@
|
|
|
2890
2894
|
}
|
|
2891
2895
|
|
|
2892
2896
|
setOptions(options) {
|
|
2897
|
+
const prevOptions = this.options;
|
|
2893
2898
|
this.options = this.client.defaultMutationOptions(options);
|
|
2899
|
+
|
|
2900
|
+
if (!shallowEqualObjects(prevOptions, this.options)) {
|
|
2901
|
+
this.client.getMutationCache().notify({
|
|
2902
|
+
type: 'observerOptionsUpdated',
|
|
2903
|
+
mutation: this.currentMutation,
|
|
2904
|
+
observer: this
|
|
2905
|
+
});
|
|
2906
|
+
}
|
|
2894
2907
|
}
|
|
2895
2908
|
|
|
2896
2909
|
onUnsubscribe() {
|