@tanstack/query-core 4.35.7 → 4.39.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/lib/queryCache.d.ts +14 -4
- package/build/lib/queryClient.d.ts +83 -20
- package/build/lib/tests/queryClient.types.test.d.ts +2 -0
- package/build/lib/tests/utils.d.ts +1 -0
- package/build/lib/types.d.ts +8 -0
- package/package.json +2 -9
- package/src/mutationObserver.ts +3 -1
- package/src/queryCache.ts +37 -6
- package/src/queryClient.ts +202 -37
- package/src/tests/mutations.test.tsx +8 -0
- package/src/tests/queryClient.types.test.tsx +13 -0
- package/src/tests/utils.ts +2 -0
- package/src/types.ts +20 -0
- package/build/lib/focusManager.esm.js +0 -91
- package/build/lib/focusManager.esm.js.map +0 -1
- package/build/lib/focusManager.js +0 -96
- package/build/lib/focusManager.js.map +0 -1
- package/build/lib/focusManager.mjs +0 -91
- package/build/lib/focusManager.mjs.map +0 -1
- package/build/lib/hydration.esm.js +0 -109
- package/build/lib/hydration.esm.js.map +0 -1
- package/build/lib/hydration.js +0 -116
- package/build/lib/hydration.js.map +0 -1
- package/build/lib/hydration.mjs +0 -109
- package/build/lib/hydration.mjs.map +0 -1
- package/build/lib/index.esm.js +0 -15
- package/build/lib/index.esm.js.map +0 -1
- package/build/lib/index.js +0 -48
- package/build/lib/index.js.map +0 -1
- package/build/lib/index.mjs +0 -15
- package/build/lib/index.mjs.map +0 -1
- package/build/lib/infiniteQueryBehavior.esm.js +0 -146
- package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
- package/build/lib/infiniteQueryBehavior.js +0 -154
- package/build/lib/infiniteQueryBehavior.js.map +0 -1
- package/build/lib/infiniteQueryBehavior.mjs +0 -146
- package/build/lib/infiniteQueryBehavior.mjs.map +0 -1
- package/build/lib/infiniteQueryObserver.esm.js +0 -85
- package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
- package/build/lib/infiniteQueryObserver.js +0 -89
- package/build/lib/infiniteQueryObserver.js.map +0 -1
- package/build/lib/infiniteQueryObserver.mjs +0 -85
- package/build/lib/infiniteQueryObserver.mjs.map +0 -1
- package/build/lib/logger.esm.js +0 -4
- package/build/lib/logger.esm.js.map +0 -1
- package/build/lib/logger.js +0 -8
- package/build/lib/logger.js.map +0 -1
- package/build/lib/logger.mjs +0 -4
- package/build/lib/logger.mjs.map +0 -1
- package/build/lib/logger.native.esm.js +0 -12
- package/build/lib/logger.native.esm.js.map +0 -1
- package/build/lib/logger.native.js +0 -16
- package/build/lib/logger.native.js.map +0 -1
- package/build/lib/logger.native.mjs +0 -12
- package/build/lib/logger.native.mjs.map +0 -1
- package/build/lib/mutation.esm.js +0 -261
- package/build/lib/mutation.esm.js.map +0 -1
- package/build/lib/mutation.js +0 -266
- package/build/lib/mutation.js.map +0 -1
- package/build/lib/mutation.mjs +0 -261
- package/build/lib/mutation.mjs.map +0 -1
- package/build/lib/mutationCache.esm.js +0 -93
- package/build/lib/mutationCache.esm.js.map +0 -1
- package/build/lib/mutationCache.js +0 -97
- package/build/lib/mutationCache.js.map +0 -1
- package/build/lib/mutationCache.mjs +0 -93
- package/build/lib/mutationCache.mjs.map +0 -1
- package/build/lib/mutationObserver.esm.js +0 -132
- package/build/lib/mutationObserver.esm.js.map +0 -1
- package/build/lib/mutationObserver.js +0 -136
- package/build/lib/mutationObserver.js.map +0 -1
- package/build/lib/mutationObserver.mjs +0 -132
- package/build/lib/mutationObserver.mjs.map +0 -1
- package/build/lib/notifyManager.esm.js +0 -99
- package/build/lib/notifyManager.esm.js.map +0 -1
- package/build/lib/notifyManager.js +0 -104
- package/build/lib/notifyManager.js.map +0 -1
- package/build/lib/notifyManager.mjs +0 -99
- package/build/lib/notifyManager.mjs.map +0 -1
- package/build/lib/onlineManager.esm.js +0 -93
- package/build/lib/onlineManager.esm.js.map +0 -1
- package/build/lib/onlineManager.js +0 -98
- package/build/lib/onlineManager.js.map +0 -1
- package/build/lib/onlineManager.mjs +0 -93
- package/build/lib/onlineManager.mjs.map +0 -1
- package/build/lib/queriesObserver.esm.js +0 -168
- package/build/lib/queriesObserver.esm.js.map +0 -1
- package/build/lib/queriesObserver.js +0 -172
- package/build/lib/queriesObserver.js.map +0 -1
- package/build/lib/queriesObserver.mjs +0 -168
- package/build/lib/queriesObserver.mjs.map +0 -1
- package/build/lib/query.esm.js +0 -475
- package/build/lib/query.esm.js.map +0 -1
- package/build/lib/query.js +0 -479
- package/build/lib/query.js.map +0 -1
- package/build/lib/query.mjs +0 -475
- package/build/lib/query.mjs.map +0 -1
- package/build/lib/queryCache.esm.js +0 -127
- package/build/lib/queryCache.esm.js.map +0 -1
- package/build/lib/queryCache.js +0 -131
- package/build/lib/queryCache.js.map +0 -1
- package/build/lib/queryCache.mjs +0 -127
- package/build/lib/queryCache.mjs.map +0 -1
- package/build/lib/queryClient.esm.js +0 -356
- package/build/lib/queryClient.esm.js.map +0 -1
- package/build/lib/queryClient.js +0 -360
- package/build/lib/queryClient.js.map +0 -1
- package/build/lib/queryClient.mjs +0 -356
- package/build/lib/queryClient.mjs.map +0 -1
- package/build/lib/queryObserver.esm.js +0 -580
- package/build/lib/queryObserver.esm.js.map +0 -1
- package/build/lib/queryObserver.js +0 -584
- package/build/lib/queryObserver.js.map +0 -1
- package/build/lib/queryObserver.mjs +0 -580
- package/build/lib/queryObserver.mjs.map +0 -1
- package/build/lib/removable.esm.js +0 -33
- package/build/lib/removable.esm.js.map +0 -1
- package/build/lib/removable.js +0 -37
- package/build/lib/removable.js.map +0 -1
- package/build/lib/removable.mjs +0 -33
- package/build/lib/removable.mjs.map +0 -1
- package/build/lib/retryer.esm.js +0 -167
- package/build/lib/retryer.esm.js.map +0 -1
- package/build/lib/retryer.js +0 -174
- package/build/lib/retryer.js.map +0 -1
- package/build/lib/retryer.mjs +0 -167
- package/build/lib/retryer.mjs.map +0 -1
- package/build/lib/subscribable.esm.js +0 -32
- package/build/lib/subscribable.esm.js.map +0 -1
- package/build/lib/subscribable.js +0 -36
- package/build/lib/subscribable.js.map +0 -1
- package/build/lib/subscribable.mjs +0 -32
- package/build/lib/subscribable.mjs.map +0 -1
- package/build/lib/utils.esm.js +0 -320
- package/build/lib/utils.esm.js.map +0 -1
- package/build/lib/utils.js +0 -350
- package/build/lib/utils.js.map +0 -1
- package/build/lib/utils.mjs +0 -320
- package/build/lib/utils.mjs.map +0 -1
- package/build/umd/index.development.js +0 -3307
- package/build/umd/index.development.js.map +0 -1
- package/build/umd/index.production.js +0 -2
- package/build/umd/index.production.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.esm.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport { Query } from './query'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport type { QueryFilters } from './utils'\nimport type { Action, QueryState } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","queries","queriesMap","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","logger","getLogger","defaultQueryOptions","defaultOptions","getQueryDefaults","add","push","notify","type","remove","queryInMap","destroy","filter","x","clear","notifyManager","batch","forEach","getAll","find","arg1","arg2","filters","parseFilterArgs","exact","matchQuery","findAll","Object","keys","length","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
package/build/lib/queryCache.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var utils = require('./utils.js');
|
|
6
|
-
var query = require('./query.js');
|
|
7
|
-
var notifyManager = require('./notifyManager.js');
|
|
8
|
-
var subscribable = require('./subscribable.js');
|
|
9
|
-
|
|
10
|
-
// CLASS
|
|
11
|
-
class QueryCache extends subscribable.Subscribable {
|
|
12
|
-
constructor(config) {
|
|
13
|
-
super();
|
|
14
|
-
this.config = config || {};
|
|
15
|
-
this.queries = [];
|
|
16
|
-
this.queriesMap = {};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
build(client, options, state) {
|
|
20
|
-
var _options$queryHash;
|
|
21
|
-
|
|
22
|
-
const queryKey = options.queryKey;
|
|
23
|
-
const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : utils.hashQueryKeyByOptions(queryKey, options);
|
|
24
|
-
let query$1 = this.get(queryHash);
|
|
25
|
-
|
|
26
|
-
if (!query$1) {
|
|
27
|
-
query$1 = new query.Query({
|
|
28
|
-
cache: this,
|
|
29
|
-
logger: client.getLogger(),
|
|
30
|
-
queryKey,
|
|
31
|
-
queryHash,
|
|
32
|
-
options: client.defaultQueryOptions(options),
|
|
33
|
-
state,
|
|
34
|
-
defaultOptions: client.getQueryDefaults(queryKey)
|
|
35
|
-
});
|
|
36
|
-
this.add(query$1);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return query$1;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
add(query) {
|
|
43
|
-
if (!this.queriesMap[query.queryHash]) {
|
|
44
|
-
this.queriesMap[query.queryHash] = query;
|
|
45
|
-
this.queries.push(query);
|
|
46
|
-
this.notify({
|
|
47
|
-
type: 'added',
|
|
48
|
-
query
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
remove(query) {
|
|
54
|
-
const queryInMap = this.queriesMap[query.queryHash];
|
|
55
|
-
|
|
56
|
-
if (queryInMap) {
|
|
57
|
-
query.destroy();
|
|
58
|
-
this.queries = this.queries.filter(x => x !== query);
|
|
59
|
-
|
|
60
|
-
if (queryInMap === query) {
|
|
61
|
-
delete this.queriesMap[query.queryHash];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
this.notify({
|
|
65
|
-
type: 'removed',
|
|
66
|
-
query
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
clear() {
|
|
72
|
-
notifyManager.notifyManager.batch(() => {
|
|
73
|
-
this.queries.forEach(query => {
|
|
74
|
-
this.remove(query);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
get(queryHash) {
|
|
80
|
-
return this.queriesMap[queryHash];
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
getAll() {
|
|
84
|
-
return this.queries;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
find(arg1, arg2) {
|
|
88
|
-
const [filters] = utils.parseFilterArgs(arg1, arg2);
|
|
89
|
-
|
|
90
|
-
if (typeof filters.exact === 'undefined') {
|
|
91
|
-
filters.exact = true;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return this.queries.find(query => utils.matchQuery(filters, query));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
findAll(arg1, arg2) {
|
|
98
|
-
const [filters] = utils.parseFilterArgs(arg1, arg2);
|
|
99
|
-
return Object.keys(filters).length > 0 ? this.queries.filter(query => utils.matchQuery(filters, query)) : this.queries;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
notify(event) {
|
|
103
|
-
notifyManager.notifyManager.batch(() => {
|
|
104
|
-
this.listeners.forEach(({
|
|
105
|
-
listener
|
|
106
|
-
}) => {
|
|
107
|
-
listener(event);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
onFocus() {
|
|
113
|
-
notifyManager.notifyManager.batch(() => {
|
|
114
|
-
this.queries.forEach(query => {
|
|
115
|
-
query.onFocus();
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
onOnline() {
|
|
121
|
-
notifyManager.notifyManager.batch(() => {
|
|
122
|
-
this.queries.forEach(query => {
|
|
123
|
-
query.onOnline();
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
exports.QueryCache = QueryCache;
|
|
131
|
-
//# sourceMappingURL=queryCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport { Query } from './query'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport type { QueryFilters } from './utils'\nimport type { Action, QueryState } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","queries","queriesMap","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","logger","getLogger","defaultQueryOptions","defaultOptions","getQueryDefaults","add","push","notify","type","remove","queryInMap","destroy","filter","x","clear","notifyManager","batch","forEach","getAll","find","arg1","arg2","filters","parseFilterArgs","exact","matchQuery","findAll","Object","keys","length","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
package/build/lib/queryCache.mjs
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';
|
|
2
|
-
import { Query } from './query.mjs';
|
|
3
|
-
import { notifyManager } from './notifyManager.mjs';
|
|
4
|
-
import { Subscribable } from './subscribable.mjs';
|
|
5
|
-
|
|
6
|
-
// CLASS
|
|
7
|
-
class QueryCache extends Subscribable {
|
|
8
|
-
constructor(config) {
|
|
9
|
-
super();
|
|
10
|
-
this.config = config || {};
|
|
11
|
-
this.queries = [];
|
|
12
|
-
this.queriesMap = {};
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
build(client, options, state) {
|
|
16
|
-
var _options$queryHash;
|
|
17
|
-
|
|
18
|
-
const queryKey = options.queryKey;
|
|
19
|
-
const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);
|
|
20
|
-
let query = this.get(queryHash);
|
|
21
|
-
|
|
22
|
-
if (!query) {
|
|
23
|
-
query = new Query({
|
|
24
|
-
cache: this,
|
|
25
|
-
logger: client.getLogger(),
|
|
26
|
-
queryKey,
|
|
27
|
-
queryHash,
|
|
28
|
-
options: client.defaultQueryOptions(options),
|
|
29
|
-
state,
|
|
30
|
-
defaultOptions: client.getQueryDefaults(queryKey)
|
|
31
|
-
});
|
|
32
|
-
this.add(query);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return query;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
add(query) {
|
|
39
|
-
if (!this.queriesMap[query.queryHash]) {
|
|
40
|
-
this.queriesMap[query.queryHash] = query;
|
|
41
|
-
this.queries.push(query);
|
|
42
|
-
this.notify({
|
|
43
|
-
type: 'added',
|
|
44
|
-
query
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
remove(query) {
|
|
50
|
-
const queryInMap = this.queriesMap[query.queryHash];
|
|
51
|
-
|
|
52
|
-
if (queryInMap) {
|
|
53
|
-
query.destroy();
|
|
54
|
-
this.queries = this.queries.filter(x => x !== query);
|
|
55
|
-
|
|
56
|
-
if (queryInMap === query) {
|
|
57
|
-
delete this.queriesMap[query.queryHash];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
this.notify({
|
|
61
|
-
type: 'removed',
|
|
62
|
-
query
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
clear() {
|
|
68
|
-
notifyManager.batch(() => {
|
|
69
|
-
this.queries.forEach(query => {
|
|
70
|
-
this.remove(query);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
get(queryHash) {
|
|
76
|
-
return this.queriesMap[queryHash];
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
getAll() {
|
|
80
|
-
return this.queries;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
find(arg1, arg2) {
|
|
84
|
-
const [filters] = parseFilterArgs(arg1, arg2);
|
|
85
|
-
|
|
86
|
-
if (typeof filters.exact === 'undefined') {
|
|
87
|
-
filters.exact = true;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return this.queries.find(query => matchQuery(filters, query));
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
findAll(arg1, arg2) {
|
|
94
|
-
const [filters] = parseFilterArgs(arg1, arg2);
|
|
95
|
-
return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
notify(event) {
|
|
99
|
-
notifyManager.batch(() => {
|
|
100
|
-
this.listeners.forEach(({
|
|
101
|
-
listener
|
|
102
|
-
}) => {
|
|
103
|
-
listener(event);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
onFocus() {
|
|
109
|
-
notifyManager.batch(() => {
|
|
110
|
-
this.queries.forEach(query => {
|
|
111
|
-
query.onFocus();
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
onOnline() {
|
|
117
|
-
notifyManager.batch(() => {
|
|
118
|
-
this.queries.forEach(query => {
|
|
119
|
-
query.onOnline();
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export { QueryCache };
|
|
127
|
-
//# sourceMappingURL=queryCache.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.mjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils'\nimport { Query } from './query'\nimport { notifyManager } from './notifyManager'\nimport { Subscribable } from './subscribable'\nimport type { QueryFilters } from './utils'\nimport type { Action, QueryState } from './query'\nimport type { NotifyEvent, QueryKey, QueryOptions } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (error: unknown, query: Query<unknown, unknown, unknown>) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: unknown | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface QueryHashMap {\n [hash: string]: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n config: QueryCacheConfig\n\n private queries: Query<any, any, any, any>[]\n private queriesMap: QueryHashMap\n\n constructor(config?: QueryCacheConfig) {\n super()\n this.config = config || {}\n this.queries = []\n this.queriesMap = {}\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query\n this.queries.push(query)\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.queriesMap[query.queryHash]\n\n if (queryInMap) {\n query.destroy()\n\n this.queries = this.queries.filter((x) => x !== query)\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash]\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.queriesMap[queryHash]\n }\n\n getAll(): Query[] {\n return this.queries\n }\n\n find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(\n arg1: QueryKey,\n arg2?: QueryFilters,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const [filters] = parseFilterArgs(arg1, arg2)\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true\n }\n\n return this.queries.find((query) => matchQuery(filters, query))\n }\n\n findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]\n findAll(filters?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]\n findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {\n const [filters] = parseFilterArgs(arg1, arg2)\n return Object.keys(filters).length > 0\n ? this.queries.filter((query) => matchQuery(filters, query))\n : this.queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach(({ listener }) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.queries.forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","queries","queriesMap","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","logger","getLogger","defaultQueryOptions","defaultOptions","getQueryDefaults","add","push","notify","type","remove","queryInMap","destroy","filter","x","clear","notifyManager","batch","forEach","getAll","find","arg1","arg2","filters","parseFilterArgs","exact","matchQuery","findAll","Object","keys","length","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.esm.js';
|
|
2
|
-
import { QueryCache } from './queryCache.esm.js';
|
|
3
|
-
import { MutationCache } from './mutationCache.esm.js';
|
|
4
|
-
import { focusManager } from './focusManager.esm.js';
|
|
5
|
-
import { onlineManager } from './onlineManager.esm.js';
|
|
6
|
-
import { notifyManager } from './notifyManager.esm.js';
|
|
7
|
-
import { infiniteQueryBehavior } from './infiniteQueryBehavior.esm.js';
|
|
8
|
-
import { defaultLogger } from './logger.esm.js';
|
|
9
|
-
|
|
10
|
-
// CLASS
|
|
11
|
-
class QueryClient {
|
|
12
|
-
constructor(config = {}) {
|
|
13
|
-
this.queryCache = config.queryCache || new QueryCache();
|
|
14
|
-
this.mutationCache = config.mutationCache || new MutationCache();
|
|
15
|
-
this.logger = config.logger || defaultLogger;
|
|
16
|
-
this.defaultOptions = config.defaultOptions || {};
|
|
17
|
-
this.queryDefaults = [];
|
|
18
|
-
this.mutationDefaults = [];
|
|
19
|
-
this.mountCount = 0;
|
|
20
|
-
|
|
21
|
-
if (process.env.NODE_ENV !== 'production' && config.logger) {
|
|
22
|
-
this.logger.error("Passing a custom logger has been deprecated and will be removed in the next major version.");
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
mount() {
|
|
27
|
-
this.mountCount++;
|
|
28
|
-
if (this.mountCount !== 1) return;
|
|
29
|
-
this.unsubscribeFocus = focusManager.subscribe(() => {
|
|
30
|
-
if (focusManager.isFocused()) {
|
|
31
|
-
this.resumePausedMutations();
|
|
32
|
-
this.queryCache.onFocus();
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
this.unsubscribeOnline = onlineManager.subscribe(() => {
|
|
36
|
-
if (onlineManager.isOnline()) {
|
|
37
|
-
this.resumePausedMutations();
|
|
38
|
-
this.queryCache.onOnline();
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
unmount() {
|
|
44
|
-
var _this$unsubscribeFocu, _this$unsubscribeOnli;
|
|
45
|
-
|
|
46
|
-
this.mountCount--;
|
|
47
|
-
if (this.mountCount !== 0) return;
|
|
48
|
-
(_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);
|
|
49
|
-
this.unsubscribeFocus = undefined;
|
|
50
|
-
(_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);
|
|
51
|
-
this.unsubscribeOnline = undefined;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
isFetching(arg1, arg2) {
|
|
55
|
-
const [filters] = parseFilterArgs(arg1, arg2);
|
|
56
|
-
filters.fetchStatus = 'fetching';
|
|
57
|
-
return this.queryCache.findAll(filters).length;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
isMutating(filters) {
|
|
61
|
-
return this.mutationCache.findAll({ ...filters,
|
|
62
|
-
fetching: true
|
|
63
|
-
}).length;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
getQueryData(queryKey, filters) {
|
|
67
|
-
var _this$queryCache$find;
|
|
68
|
-
|
|
69
|
-
return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
ensureQueryData(arg1, arg2, arg3) {
|
|
73
|
-
const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
|
|
74
|
-
const cachedData = this.getQueryData(parsedOptions.queryKey);
|
|
75
|
-
return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
getQueriesData(queryKeyOrFilters) {
|
|
79
|
-
return this.getQueryCache().findAll(queryKeyOrFilters).map(({
|
|
80
|
-
queryKey,
|
|
81
|
-
state
|
|
82
|
-
}) => {
|
|
83
|
-
const data = state.data;
|
|
84
|
-
return [queryKey, data];
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
setQueryData(queryKey, updater, options) {
|
|
89
|
-
const query = this.queryCache.find(queryKey);
|
|
90
|
-
const prevData = query == null ? void 0 : query.state.data;
|
|
91
|
-
const data = functionalUpdate(updater, prevData);
|
|
92
|
-
|
|
93
|
-
if (typeof data === 'undefined') {
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const parsedOptions = parseQueryArgs(queryKey);
|
|
98
|
-
const defaultedOptions = this.defaultQueryOptions(parsedOptions);
|
|
99
|
-
return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,
|
|
100
|
-
manual: true
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
setQueriesData(queryKeyOrFilters, updater, options) {
|
|
105
|
-
return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({
|
|
106
|
-
queryKey
|
|
107
|
-
}) => [queryKey, this.setQueryData(queryKey, updater, options)]));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
getQueryState(queryKey, filters) {
|
|
111
|
-
var _this$queryCache$find2;
|
|
112
|
-
|
|
113
|
-
return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
removeQueries(arg1, arg2) {
|
|
117
|
-
const [filters] = parseFilterArgs(arg1, arg2);
|
|
118
|
-
const queryCache = this.queryCache;
|
|
119
|
-
notifyManager.batch(() => {
|
|
120
|
-
queryCache.findAll(filters).forEach(query => {
|
|
121
|
-
queryCache.remove(query);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
resetQueries(arg1, arg2, arg3) {
|
|
127
|
-
const [filters, options] = parseFilterArgs(arg1, arg2, arg3);
|
|
128
|
-
const queryCache = this.queryCache;
|
|
129
|
-
const refetchFilters = {
|
|
130
|
-
type: 'active',
|
|
131
|
-
...filters
|
|
132
|
-
};
|
|
133
|
-
return notifyManager.batch(() => {
|
|
134
|
-
queryCache.findAll(filters).forEach(query => {
|
|
135
|
-
query.reset();
|
|
136
|
-
});
|
|
137
|
-
return this.refetchQueries(refetchFilters, options);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
cancelQueries(arg1, arg2, arg3) {
|
|
142
|
-
const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);
|
|
143
|
-
|
|
144
|
-
if (typeof cancelOptions.revert === 'undefined') {
|
|
145
|
-
cancelOptions.revert = true;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));
|
|
149
|
-
return Promise.all(promises).then(noop).catch(noop);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
invalidateQueries(arg1, arg2, arg3) {
|
|
153
|
-
const [filters, options] = parseFilterArgs(arg1, arg2, arg3);
|
|
154
|
-
return notifyManager.batch(() => {
|
|
155
|
-
var _ref, _filters$refetchType;
|
|
156
|
-
|
|
157
|
-
this.queryCache.findAll(filters).forEach(query => {
|
|
158
|
-
query.invalidate();
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
if (filters.refetchType === 'none') {
|
|
162
|
-
return Promise.resolve();
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
const refetchFilters = { ...filters,
|
|
166
|
-
type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'
|
|
167
|
-
};
|
|
168
|
-
return this.refetchQueries(refetchFilters, options);
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
refetchQueries(arg1, arg2, arg3) {
|
|
173
|
-
const [filters, options] = parseFilterArgs(arg1, arg2, arg3);
|
|
174
|
-
const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {
|
|
175
|
-
var _options$cancelRefetc;
|
|
176
|
-
|
|
177
|
-
return query.fetch(undefined, { ...options,
|
|
178
|
-
cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,
|
|
179
|
-
meta: {
|
|
180
|
-
refetchPage: filters.refetchPage
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
}));
|
|
184
|
-
let promise = Promise.all(promises).then(noop);
|
|
185
|
-
|
|
186
|
-
if (!(options != null && options.throwOnError)) {
|
|
187
|
-
promise = promise.catch(noop);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
return promise;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
fetchQuery(arg1, arg2, arg3) {
|
|
194
|
-
const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
|
|
195
|
-
const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652
|
|
196
|
-
|
|
197
|
-
if (typeof defaultedOptions.retry === 'undefined') {
|
|
198
|
-
defaultedOptions.retry = false;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
const query = this.queryCache.build(this, defaultedOptions);
|
|
202
|
-
return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
prefetchQuery(arg1, arg2, arg3) {
|
|
206
|
-
return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
fetchInfiniteQuery(arg1, arg2, arg3) {
|
|
210
|
-
const parsedOptions = parseQueryArgs(arg1, arg2, arg3);
|
|
211
|
-
parsedOptions.behavior = infiniteQueryBehavior();
|
|
212
|
-
return this.fetchQuery(parsedOptions);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
prefetchInfiniteQuery(arg1, arg2, arg3) {
|
|
216
|
-
return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
resumePausedMutations() {
|
|
220
|
-
return this.mutationCache.resumePausedMutations();
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
getQueryCache() {
|
|
224
|
-
return this.queryCache;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
getMutationCache() {
|
|
228
|
-
return this.mutationCache;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
getLogger() {
|
|
232
|
-
return this.logger;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
getDefaultOptions() {
|
|
236
|
-
return this.defaultOptions;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
setDefaultOptions(options) {
|
|
240
|
-
this.defaultOptions = options;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
setQueryDefaults(queryKey, options) {
|
|
244
|
-
const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));
|
|
245
|
-
|
|
246
|
-
if (result) {
|
|
247
|
-
result.defaultOptions = options;
|
|
248
|
-
} else {
|
|
249
|
-
this.queryDefaults.push({
|
|
250
|
-
queryKey,
|
|
251
|
-
defaultOptions: options
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
getQueryDefaults(queryKey) {
|
|
257
|
-
if (!queryKey) {
|
|
258
|
-
return undefined;
|
|
259
|
-
} // Get the first matching defaults
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode
|
|
263
|
-
|
|
264
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
265
|
-
// Retrieve all matching defaults for the given key
|
|
266
|
-
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
|
|
267
|
-
|
|
268
|
-
if (matchingDefaults.length > 1) {
|
|
269
|
-
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.");
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
setMutationDefaults(mutationKey, options) {
|
|
277
|
-
const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));
|
|
278
|
-
|
|
279
|
-
if (result) {
|
|
280
|
-
result.defaultOptions = options;
|
|
281
|
-
} else {
|
|
282
|
-
this.mutationDefaults.push({
|
|
283
|
-
mutationKey,
|
|
284
|
-
defaultOptions: options
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
getMutationDefaults(mutationKey) {
|
|
290
|
-
if (!mutationKey) {
|
|
291
|
-
return undefined;
|
|
292
|
-
} // Get the first matching defaults
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode
|
|
296
|
-
|
|
297
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
298
|
-
// Retrieve all matching defaults for the given key
|
|
299
|
-
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
|
|
300
|
-
|
|
301
|
-
if (matchingDefaults.length > 1) {
|
|
302
|
-
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.");
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
defaultQueryOptions(options) {
|
|
310
|
-
if (options != null && options._defaulted) {
|
|
311
|
-
return options;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
const defaultedOptions = { ...this.defaultOptions.queries,
|
|
315
|
-
...this.getQueryDefaults(options == null ? void 0 : options.queryKey),
|
|
316
|
-
...options,
|
|
317
|
-
_defaulted: true
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {
|
|
321
|
-
defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);
|
|
322
|
-
} // dependent default values
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {
|
|
326
|
-
defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
if (typeof defaultedOptions.useErrorBoundary === 'undefined') {
|
|
330
|
-
defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
return defaultedOptions;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
defaultMutationOptions(options) {
|
|
337
|
-
if (options != null && options._defaulted) {
|
|
338
|
-
return options;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
return { ...this.defaultOptions.mutations,
|
|
342
|
-
...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),
|
|
343
|
-
...options,
|
|
344
|
-
_defaulted: true
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
clear() {
|
|
349
|
-
this.queryCache.clear();
|
|
350
|
-
this.mutationCache.clear();
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
export { QueryClient };
|
|
356
|
-
//# sourceMappingURL=queryClient.esm.js.map
|