@tanstack/query-core 4.39.0 → 4.39.1
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/focusManager.esm.js +91 -0
- package/build/lib/focusManager.esm.js.map +1 -0
- package/build/lib/focusManager.js +96 -0
- package/build/lib/focusManager.js.map +1 -0
- package/build/lib/focusManager.mjs +91 -0
- package/build/lib/focusManager.mjs.map +1 -0
- package/build/lib/hydration.esm.js +109 -0
- package/build/lib/hydration.esm.js.map +1 -0
- package/build/lib/hydration.js +116 -0
- package/build/lib/hydration.js.map +1 -0
- package/build/lib/hydration.mjs +109 -0
- package/build/lib/hydration.mjs.map +1 -0
- package/build/lib/index.esm.js +15 -0
- package/build/lib/index.esm.js.map +1 -0
- package/build/lib/index.js +48 -0
- package/build/lib/index.js.map +1 -0
- package/build/lib/index.mjs +15 -0
- package/build/lib/index.mjs.map +1 -0
- package/build/lib/infiniteQueryBehavior.esm.js +146 -0
- package/build/lib/infiniteQueryBehavior.esm.js.map +1 -0
- package/build/lib/infiniteQueryBehavior.js +154 -0
- package/build/lib/infiniteQueryBehavior.js.map +1 -0
- package/build/lib/infiniteQueryBehavior.mjs +146 -0
- package/build/lib/infiniteQueryBehavior.mjs.map +1 -0
- package/build/lib/infiniteQueryObserver.esm.js +85 -0
- package/build/lib/infiniteQueryObserver.esm.js.map +1 -0
- package/build/lib/infiniteQueryObserver.js +89 -0
- package/build/lib/infiniteQueryObserver.js.map +1 -0
- package/build/lib/infiniteQueryObserver.mjs +85 -0
- package/build/lib/infiniteQueryObserver.mjs.map +1 -0
- package/build/lib/logger.esm.js +4 -0
- package/build/lib/logger.esm.js.map +1 -0
- package/build/lib/logger.js +8 -0
- package/build/lib/logger.js.map +1 -0
- package/build/lib/logger.mjs +4 -0
- package/build/lib/logger.mjs.map +1 -0
- package/build/lib/logger.native.esm.js +12 -0
- package/build/lib/logger.native.esm.js.map +1 -0
- package/build/lib/logger.native.js +16 -0
- package/build/lib/logger.native.js.map +1 -0
- package/build/lib/logger.native.mjs +12 -0
- package/build/lib/logger.native.mjs.map +1 -0
- package/build/lib/mutation.esm.js +261 -0
- package/build/lib/mutation.esm.js.map +1 -0
- package/build/lib/mutation.js +266 -0
- package/build/lib/mutation.js.map +1 -0
- package/build/lib/mutation.mjs +261 -0
- package/build/lib/mutation.mjs.map +1 -0
- package/build/lib/mutationCache.esm.js +93 -0
- package/build/lib/mutationCache.esm.js.map +1 -0
- package/build/lib/mutationCache.js +97 -0
- package/build/lib/mutationCache.js.map +1 -0
- package/build/lib/mutationCache.mjs +93 -0
- package/build/lib/mutationCache.mjs.map +1 -0
- package/build/lib/mutationObserver.esm.js +134 -0
- package/build/lib/mutationObserver.esm.js.map +1 -0
- package/build/lib/mutationObserver.js +138 -0
- package/build/lib/mutationObserver.js.map +1 -0
- package/build/lib/mutationObserver.mjs +134 -0
- package/build/lib/mutationObserver.mjs.map +1 -0
- package/build/lib/notifyManager.esm.js +99 -0
- package/build/lib/notifyManager.esm.js.map +1 -0
- package/build/lib/notifyManager.js +104 -0
- package/build/lib/notifyManager.js.map +1 -0
- package/build/lib/notifyManager.mjs +99 -0
- package/build/lib/notifyManager.mjs.map +1 -0
- package/build/lib/onlineManager.esm.js +93 -0
- package/build/lib/onlineManager.esm.js.map +1 -0
- package/build/lib/onlineManager.js +98 -0
- package/build/lib/onlineManager.js.map +1 -0
- package/build/lib/onlineManager.mjs +93 -0
- package/build/lib/onlineManager.mjs.map +1 -0
- package/build/lib/queriesObserver.esm.js +168 -0
- package/build/lib/queriesObserver.esm.js.map +1 -0
- package/build/lib/queriesObserver.js +172 -0
- package/build/lib/queriesObserver.js.map +1 -0
- package/build/lib/queriesObserver.mjs +168 -0
- package/build/lib/queriesObserver.mjs.map +1 -0
- package/build/lib/query.esm.js +475 -0
- package/build/lib/query.esm.js.map +1 -0
- package/build/lib/query.js +479 -0
- package/build/lib/query.js.map +1 -0
- package/build/lib/query.mjs +475 -0
- package/build/lib/query.mjs.map +1 -0
- package/build/lib/queryCache.esm.js +133 -0
- package/build/lib/queryCache.esm.js.map +1 -0
- package/build/lib/queryCache.js +137 -0
- package/build/lib/queryCache.js.map +1 -0
- package/build/lib/queryCache.mjs +133 -0
- package/build/lib/queryCache.mjs.map +1 -0
- package/build/lib/queryClient.esm.js +402 -0
- package/build/lib/queryClient.esm.js.map +1 -0
- package/build/lib/queryClient.js +406 -0
- package/build/lib/queryClient.js.map +1 -0
- package/build/lib/queryClient.mjs +402 -0
- package/build/lib/queryClient.mjs.map +1 -0
- package/build/lib/queryObserver.esm.js +580 -0
- package/build/lib/queryObserver.esm.js.map +1 -0
- package/build/lib/queryObserver.js +584 -0
- package/build/lib/queryObserver.js.map +1 -0
- package/build/lib/queryObserver.mjs +580 -0
- package/build/lib/queryObserver.mjs.map +1 -0
- package/build/lib/removable.esm.js +33 -0
- package/build/lib/removable.esm.js.map +1 -0
- package/build/lib/removable.js +37 -0
- package/build/lib/removable.js.map +1 -0
- package/build/lib/removable.mjs +33 -0
- package/build/lib/removable.mjs.map +1 -0
- package/build/lib/retryer.esm.js +167 -0
- package/build/lib/retryer.esm.js.map +1 -0
- package/build/lib/retryer.js +174 -0
- package/build/lib/retryer.js.map +1 -0
- package/build/lib/retryer.mjs +167 -0
- package/build/lib/retryer.mjs.map +1 -0
- package/build/lib/subscribable.esm.js +32 -0
- package/build/lib/subscribable.esm.js.map +1 -0
- package/build/lib/subscribable.js +36 -0
- package/build/lib/subscribable.js.map +1 -0
- package/build/lib/subscribable.mjs +32 -0
- package/build/lib/subscribable.mjs.map +1 -0
- package/build/lib/utils.esm.js +320 -0
- package/build/lib/utils.esm.js.map +1 -0
- package/build/lib/utils.js +350 -0
- package/build/lib/utils.js.map +1 -0
- package/build/lib/utils.mjs +320 -0
- package/build/lib/utils.mjs.map +1 -0
- package/build/umd/index.development.js +3361 -0
- package/build/umd/index.development.js.map +1 -0
- package/build/umd/index.production.js +2 -0
- package/build/umd/index.production.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
// TYPES
|
|
2
|
+
// UTILS
|
|
3
|
+
const isServer = typeof window === 'undefined' || 'Deno' in window;
|
|
4
|
+
function noop() {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
function functionalUpdate(updater, input) {
|
|
8
|
+
return typeof updater === 'function' ? updater(input) : updater;
|
|
9
|
+
}
|
|
10
|
+
function isValidTimeout(value) {
|
|
11
|
+
return typeof value === 'number' && value >= 0 && value !== Infinity;
|
|
12
|
+
}
|
|
13
|
+
function difference(array1, array2) {
|
|
14
|
+
return array1.filter(x => !array2.includes(x));
|
|
15
|
+
}
|
|
16
|
+
function replaceAt(array, index, value) {
|
|
17
|
+
const copy = array.slice(0);
|
|
18
|
+
copy[index] = value;
|
|
19
|
+
return copy;
|
|
20
|
+
}
|
|
21
|
+
function timeUntilStale(updatedAt, staleTime) {
|
|
22
|
+
return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);
|
|
23
|
+
}
|
|
24
|
+
function parseQueryArgs(arg1, arg2, arg3) {
|
|
25
|
+
if (!isQueryKey(arg1)) {
|
|
26
|
+
return arg1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (typeof arg2 === 'function') {
|
|
30
|
+
return { ...arg3,
|
|
31
|
+
queryKey: arg1,
|
|
32
|
+
queryFn: arg2
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return { ...arg2,
|
|
37
|
+
queryKey: arg1
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function parseMutationArgs(arg1, arg2, arg3) {
|
|
41
|
+
if (isQueryKey(arg1)) {
|
|
42
|
+
if (typeof arg2 === 'function') {
|
|
43
|
+
return { ...arg3,
|
|
44
|
+
mutationKey: arg1,
|
|
45
|
+
mutationFn: arg2
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return { ...arg2,
|
|
50
|
+
mutationKey: arg1
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (typeof arg1 === 'function') {
|
|
55
|
+
return { ...arg2,
|
|
56
|
+
mutationFn: arg1
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return { ...arg1
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function parseFilterArgs(arg1, arg2, arg3) {
|
|
64
|
+
return isQueryKey(arg1) ? [{ ...arg2,
|
|
65
|
+
queryKey: arg1
|
|
66
|
+
}, arg3] : [arg1 || {}, arg2];
|
|
67
|
+
}
|
|
68
|
+
function parseMutationFilterArgs(arg1, arg2, arg3) {
|
|
69
|
+
return isQueryKey(arg1) ? [{ ...arg2,
|
|
70
|
+
mutationKey: arg1
|
|
71
|
+
}, arg3] : [arg1 || {}, arg2];
|
|
72
|
+
}
|
|
73
|
+
function matchQuery(filters, query) {
|
|
74
|
+
const {
|
|
75
|
+
type = 'all',
|
|
76
|
+
exact,
|
|
77
|
+
fetchStatus,
|
|
78
|
+
predicate,
|
|
79
|
+
queryKey,
|
|
80
|
+
stale
|
|
81
|
+
} = filters;
|
|
82
|
+
|
|
83
|
+
if (isQueryKey(queryKey)) {
|
|
84
|
+
if (exact) {
|
|
85
|
+
if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
} else if (!partialMatchKey(query.queryKey, queryKey)) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (type !== 'all') {
|
|
94
|
+
const isActive = query.isActive();
|
|
95
|
+
|
|
96
|
+
if (type === 'active' && !isActive) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (type === 'inactive' && isActive) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (typeof stale === 'boolean' && query.isStale() !== stale) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (predicate && !predicate(query)) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
function matchMutation(filters, mutation) {
|
|
120
|
+
const {
|
|
121
|
+
exact,
|
|
122
|
+
fetching,
|
|
123
|
+
predicate,
|
|
124
|
+
mutationKey
|
|
125
|
+
} = filters;
|
|
126
|
+
|
|
127
|
+
if (isQueryKey(mutationKey)) {
|
|
128
|
+
if (!mutation.options.mutationKey) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (exact) {
|
|
133
|
+
if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
} else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (predicate && !predicate(mutation)) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
function hashQueryKeyByOptions(queryKey, options) {
|
|
152
|
+
const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;
|
|
153
|
+
return hashFn(queryKey);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Default query keys hash function.
|
|
157
|
+
* Hashes the value into a stable hash.
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
function hashQueryKey(queryKey) {
|
|
161
|
+
return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {
|
|
162
|
+
result[key] = val[key];
|
|
163
|
+
return result;
|
|
164
|
+
}, {}) : val);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Checks if key `b` partially matches with key `a`.
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
function partialMatchKey(a, b) {
|
|
171
|
+
return partialDeepEqual(a, b);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Checks if `b` partially matches with `a`.
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
function partialDeepEqual(a, b) {
|
|
178
|
+
if (a === b) {
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (typeof a !== typeof b) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (a && b && typeof a === 'object' && typeof b === 'object') {
|
|
187
|
+
return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* This function returns `a` if `b` is deeply equal.
|
|
194
|
+
* If not, it will replace any deeply equal children of `b` with those of `a`.
|
|
195
|
+
* This can be used for structural sharing between JSON values for example.
|
|
196
|
+
*/
|
|
197
|
+
|
|
198
|
+
function replaceEqualDeep(a, b) {
|
|
199
|
+
if (a === b) {
|
|
200
|
+
return a;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const array = isPlainArray(a) && isPlainArray(b);
|
|
204
|
+
|
|
205
|
+
if (array || isPlainObject(a) && isPlainObject(b)) {
|
|
206
|
+
const aSize = array ? a.length : Object.keys(a).length;
|
|
207
|
+
const bItems = array ? b : Object.keys(b);
|
|
208
|
+
const bSize = bItems.length;
|
|
209
|
+
const copy = array ? [] : {};
|
|
210
|
+
let equalItems = 0;
|
|
211
|
+
|
|
212
|
+
for (let i = 0; i < bSize; i++) {
|
|
213
|
+
const key = array ? i : bItems[i];
|
|
214
|
+
copy[key] = replaceEqualDeep(a[key], b[key]);
|
|
215
|
+
|
|
216
|
+
if (copy[key] === a[key]) {
|
|
217
|
+
equalItems++;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return aSize === bSize && equalItems === aSize ? a : copy;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return b;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Shallow compare objects. Only works with objects that always have the same properties.
|
|
228
|
+
*/
|
|
229
|
+
|
|
230
|
+
function shallowEqualObjects(a, b) {
|
|
231
|
+
if (a && !b || b && !a) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
for (const key in a) {
|
|
236
|
+
if (a[key] !== b[key]) {
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
function isPlainArray(value) {
|
|
244
|
+
return Array.isArray(value) && value.length === Object.keys(value).length;
|
|
245
|
+
} // Copied from: https://github.com/jonschlinkert/is-plain-object
|
|
246
|
+
|
|
247
|
+
function isPlainObject(o) {
|
|
248
|
+
if (!hasObjectPrototype(o)) {
|
|
249
|
+
return false;
|
|
250
|
+
} // If has modified constructor
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
const ctor = o.constructor;
|
|
254
|
+
|
|
255
|
+
if (typeof ctor === 'undefined') {
|
|
256
|
+
return true;
|
|
257
|
+
} // If has modified prototype
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
const prot = ctor.prototype;
|
|
261
|
+
|
|
262
|
+
if (!hasObjectPrototype(prot)) {
|
|
263
|
+
return false;
|
|
264
|
+
} // If constructor does not have an Object-specific method
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
if (!prot.hasOwnProperty('isPrototypeOf')) {
|
|
268
|
+
return false;
|
|
269
|
+
} // Most likely a plain Object
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
return true;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
function hasObjectPrototype(o) {
|
|
276
|
+
return Object.prototype.toString.call(o) === '[object Object]';
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function isQueryKey(value) {
|
|
280
|
+
return Array.isArray(value);
|
|
281
|
+
}
|
|
282
|
+
function isError(value) {
|
|
283
|
+
return value instanceof Error;
|
|
284
|
+
}
|
|
285
|
+
function sleep(timeout) {
|
|
286
|
+
return new Promise(resolve => {
|
|
287
|
+
setTimeout(resolve, timeout);
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Schedules a microtask.
|
|
292
|
+
* This can be useful to schedule state updates after rendering.
|
|
293
|
+
*/
|
|
294
|
+
|
|
295
|
+
function scheduleMicrotask(callback) {
|
|
296
|
+
sleep(0).then(callback);
|
|
297
|
+
}
|
|
298
|
+
function getAbortController() {
|
|
299
|
+
if (typeof AbortController === 'function') {
|
|
300
|
+
return new AbortController();
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
function replaceData(prevData, data, options) {
|
|
306
|
+
// Use prev data if an isDataEqual function is defined and returns `true`
|
|
307
|
+
if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {
|
|
308
|
+
return prevData;
|
|
309
|
+
} else if (typeof options.structuralSharing === 'function') {
|
|
310
|
+
return options.structuralSharing(prevData, data);
|
|
311
|
+
} else if (options.structuralSharing !== false) {
|
|
312
|
+
// Structurally share data between prev and new data if needed
|
|
313
|
+
return replaceEqualDeep(prevData, data);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
return data;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };
|
|
320
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../src/utils.ts"],"sourcesContent":["import type { Mutation } from './mutation'\nimport type { Query } from './query'\nimport type {\n FetchStatus,\n MutationFunction,\n MutationKey,\n MutationOptions,\n QueryFunction,\n QueryKey,\n QueryOptions,\n} from './types'\n\n// TYPES\n\nexport interface QueryFilters {\n /**\n * Filter to active queries, inactive queries or all queries\n */\n type?: QueryTypeFilter\n /**\n * Match query key exactly\n */\n exact?: boolean\n /**\n * Include queries matching this predicate function\n */\n predicate?: (query: Query) => boolean\n /**\n * Include queries matching this query key\n */\n queryKey?: QueryKey\n /**\n * Include or exclude stale queries\n */\n stale?: boolean\n /**\n * Include queries matching their fetchStatus\n */\n fetchStatus?: FetchStatus\n}\n\nexport interface MutationFilters {\n /**\n * Match mutation key exactly\n */\n exact?: boolean\n /**\n * Include mutations matching this predicate function\n */\n predicate?: (mutation: Mutation<any, any, any>) => boolean\n /**\n * Include mutations matching this mutation key\n */\n mutationKey?: MutationKey\n /**\n * Include or exclude fetching mutations\n */\n fetching?: boolean\n}\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport type QueryTypeFilter = 'all' | 'active' | 'inactive'\n\n// UTILS\n\nexport const isServer = typeof window === 'undefined' || 'Deno' in window\n\nexport function noop(): undefined {\n return undefined\n}\n\nexport function functionalUpdate<TInput, TOutput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function isValidTimeout(value: unknown): value is number {\n return typeof value === 'number' && value >= 0 && value !== Infinity\n}\n\nexport function difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => !array2.includes(x))\n}\n\nexport function replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\nexport function timeUntilStale(updatedAt: number, staleTime?: number): number {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0)\n}\n\nexport function parseQueryArgs<\n TOptions extends QueryOptions<any, any, any, TQueryKey>,\n TQueryKey extends QueryKey = QueryKey,\n>(\n arg1: TQueryKey | TOptions,\n arg2?: QueryFunction<any, TQueryKey> | TOptions,\n arg3?: TOptions,\n): TOptions {\n if (!isQueryKey(arg1)) {\n return arg1 as TOptions\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3, queryKey: arg1, queryFn: arg2 } as TOptions\n }\n\n return { ...arg2, queryKey: arg1 } as TOptions\n}\n\nexport function parseMutationArgs<\n TOptions extends MutationOptions<any, any, any, any>,\n>(\n arg1: MutationKey | MutationFunction<any, any> | TOptions,\n arg2?: MutationFunction<any, any> | TOptions,\n arg3?: TOptions,\n): TOptions {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3, mutationKey: arg1, mutationFn: arg2 } as TOptions\n }\n return { ...arg2, mutationKey: arg1 } as TOptions\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2, mutationFn: arg1 } as TOptions\n }\n\n return { ...arg1 } as TOptions\n}\n\nexport function parseFilterArgs<\n TFilters extends QueryFilters,\n TOptions = unknown,\n>(\n arg1?: QueryKey | TFilters,\n arg2?: TFilters | TOptions,\n arg3?: TOptions,\n): [TFilters, TOptions | undefined] {\n return (\n isQueryKey(arg1) ? [{ ...arg2, queryKey: arg1 }, arg3] : [arg1 || {}, arg2]\n ) as [TFilters, TOptions]\n}\n\nexport function parseMutationFilterArgs<\n TFilters extends MutationFilters,\n TOptions = unknown,\n>(\n arg1?: QueryKey | TFilters,\n arg2?: TFilters | TOptions,\n arg3?: TOptions,\n): [TFilters, TOptions | undefined] {\n return (\n isQueryKey(arg1)\n ? [{ ...arg2, mutationKey: arg1 }, arg3]\n : [arg1 || {}, arg2]\n ) as [TFilters, TOptions]\n}\n\nexport function matchQuery(\n filters: QueryFilters,\n query: Query<any, any, any, any>,\n): boolean {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale,\n } = filters\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive()\n if (type === 'active' && !isActive) {\n return false\n }\n if (type === 'inactive' && isActive) {\n return false\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false\n }\n\n if (\n typeof fetchStatus !== 'undefined' &&\n fetchStatus !== query.state.fetchStatus\n ) {\n return false\n }\n\n if (predicate && !predicate(query)) {\n return false\n }\n\n return true\n}\n\nexport function matchMutation(\n filters: MutationFilters,\n mutation: Mutation<any, any>,\n): boolean {\n const { exact, fetching, predicate, mutationKey } = filters\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false\n }\n if (exact) {\n if (\n hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)\n ) {\n return false\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false\n }\n }\n\n if (\n typeof fetching === 'boolean' &&\n (mutation.state.status === 'loading') !== fetching\n ) {\n return false\n }\n\n if (predicate && !predicate(mutation)) {\n return false\n }\n\n return true\n}\n\nexport function hashQueryKeyByOptions<TQueryKey extends QueryKey = QueryKey>(\n queryKey: TQueryKey,\n options?: QueryOptions<any, any, any, TQueryKey>,\n): string {\n const hashFn = options?.queryKeyHashFn || hashQueryKey\n return hashFn(queryKey)\n}\n\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\nexport function hashQueryKey(queryKey: QueryKey): string {\n return JSON.stringify(queryKey, (_, val) =>\n isPlainObject(val)\n ? Object.keys(val)\n .sort()\n .reduce((result, key) => {\n result[key] = val[key]\n return result\n }, {} as any)\n : val,\n )\n}\n\n/**\n * Checks if key `b` partially matches with key `a`.\n */\nexport function partialMatchKey(a: QueryKey, b: QueryKey): boolean {\n return partialDeepEqual(a, b)\n}\n\n/**\n * Checks if `b` partially matches with `a`.\n */\nexport function partialDeepEqual(a: any, b: any): boolean {\n if (a === b) {\n return true\n }\n\n if (typeof a !== typeof b) {\n return false\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some((key) => !partialDeepEqual(a[key], b[key]))\n }\n\n return false\n}\n\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\nexport function replaceEqualDeep<T>(a: unknown, b: T): T\nexport function replaceEqualDeep(a: any, b: any): any {\n if (a === b) {\n return a\n }\n\n const array = isPlainArray(a) && isPlainArray(b)\n\n if (array || (isPlainObject(a) && isPlainObject(b))) {\n const aSize = array ? a.length : Object.keys(a).length\n const bItems = array ? b : Object.keys(b)\n const bSize = bItems.length\n const copy: any = array ? [] : {}\n\n let equalItems = 0\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i]\n copy[key] = replaceEqualDeep(a[key], b[key])\n if (copy[key] === a[key]) {\n equalItems++\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy\n }\n\n return b\n}\n\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\nexport function shallowEqualObjects<T>(a: T, b: T): boolean {\n if ((a && !b) || (b && !a)) {\n return false\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false\n }\n }\n\n return true\n}\n\nexport function isPlainArray(value: unknown) {\n return Array.isArray(value) && value.length === Object.keys(value).length\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function isQueryKey(value: unknown): value is QueryKey {\n return Array.isArray(value)\n}\n\nexport function isError(value: any): value is Error {\n return value instanceof Error\n}\n\nexport function sleep(timeout: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\nexport function scheduleMicrotask(callback: () => void) {\n sleep(0).then(callback)\n}\n\nexport function getAbortController(): AbortController | undefined {\n if (typeof AbortController === 'function') {\n return new AbortController()\n }\n return\n}\n\nexport function replaceData<\n TData,\n TOptions extends QueryOptions<any, any, any, any>,\n>(prevData: TData | undefined, data: TData, options: TOptions): TData {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual?.(prevData, data)) {\n return prevData as TData\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data)\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data)\n }\n return data\n}\n"],"names":["isServer","window","noop","undefined","functionalUpdate","updater","input","isValidTimeout","value","Infinity","difference","array1","array2","filter","x","includes","replaceAt","array","index","copy","slice","timeUntilStale","updatedAt","staleTime","Math","max","Date","now","parseQueryArgs","arg1","arg2","arg3","isQueryKey","queryKey","queryFn","parseMutationArgs","mutationKey","mutationFn","parseFilterArgs","parseMutationFilterArgs","matchQuery","filters","query","type","exact","fetchStatus","predicate","stale","queryHash","hashQueryKeyByOptions","options","partialMatchKey","isActive","isStale","state","matchMutation","mutation","fetching","hashQueryKey","status","hashFn","queryKeyHashFn","JSON","stringify","_","val","isPlainObject","Object","keys","sort","reduce","result","key","a","b","partialDeepEqual","some","replaceEqualDeep","isPlainArray","aSize","length","bItems","bSize","equalItems","i","shallowEqualObjects","Array","isArray","o","hasObjectPrototype","ctor","constructor","prot","prototype","hasOwnProperty","toString","call","isError","Error","sleep","timeout","Promise","resolve","setTimeout","scheduleMicrotask","callback","then","getAbortController","AbortController","replaceData","prevData","data","isDataEqual","structuralSharing"],"mappings":"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"}
|