@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.
Files changed (143) hide show
  1. package/build/lib/queryCache.d.ts +14 -4
  2. package/build/lib/queryClient.d.ts +83 -20
  3. package/build/lib/tests/queryClient.types.test.d.ts +2 -0
  4. package/build/lib/tests/utils.d.ts +1 -0
  5. package/build/lib/types.d.ts +8 -0
  6. package/package.json +2 -9
  7. package/src/mutationObserver.ts +3 -1
  8. package/src/queryCache.ts +37 -6
  9. package/src/queryClient.ts +202 -37
  10. package/src/tests/mutations.test.tsx +8 -0
  11. package/src/tests/queryClient.types.test.tsx +13 -0
  12. package/src/tests/utils.ts +2 -0
  13. package/src/types.ts +20 -0
  14. package/build/lib/focusManager.esm.js +0 -91
  15. package/build/lib/focusManager.esm.js.map +0 -1
  16. package/build/lib/focusManager.js +0 -96
  17. package/build/lib/focusManager.js.map +0 -1
  18. package/build/lib/focusManager.mjs +0 -91
  19. package/build/lib/focusManager.mjs.map +0 -1
  20. package/build/lib/hydration.esm.js +0 -109
  21. package/build/lib/hydration.esm.js.map +0 -1
  22. package/build/lib/hydration.js +0 -116
  23. package/build/lib/hydration.js.map +0 -1
  24. package/build/lib/hydration.mjs +0 -109
  25. package/build/lib/hydration.mjs.map +0 -1
  26. package/build/lib/index.esm.js +0 -15
  27. package/build/lib/index.esm.js.map +0 -1
  28. package/build/lib/index.js +0 -48
  29. package/build/lib/index.js.map +0 -1
  30. package/build/lib/index.mjs +0 -15
  31. package/build/lib/index.mjs.map +0 -1
  32. package/build/lib/infiniteQueryBehavior.esm.js +0 -146
  33. package/build/lib/infiniteQueryBehavior.esm.js.map +0 -1
  34. package/build/lib/infiniteQueryBehavior.js +0 -154
  35. package/build/lib/infiniteQueryBehavior.js.map +0 -1
  36. package/build/lib/infiniteQueryBehavior.mjs +0 -146
  37. package/build/lib/infiniteQueryBehavior.mjs.map +0 -1
  38. package/build/lib/infiniteQueryObserver.esm.js +0 -85
  39. package/build/lib/infiniteQueryObserver.esm.js.map +0 -1
  40. package/build/lib/infiniteQueryObserver.js +0 -89
  41. package/build/lib/infiniteQueryObserver.js.map +0 -1
  42. package/build/lib/infiniteQueryObserver.mjs +0 -85
  43. package/build/lib/infiniteQueryObserver.mjs.map +0 -1
  44. package/build/lib/logger.esm.js +0 -4
  45. package/build/lib/logger.esm.js.map +0 -1
  46. package/build/lib/logger.js +0 -8
  47. package/build/lib/logger.js.map +0 -1
  48. package/build/lib/logger.mjs +0 -4
  49. package/build/lib/logger.mjs.map +0 -1
  50. package/build/lib/logger.native.esm.js +0 -12
  51. package/build/lib/logger.native.esm.js.map +0 -1
  52. package/build/lib/logger.native.js +0 -16
  53. package/build/lib/logger.native.js.map +0 -1
  54. package/build/lib/logger.native.mjs +0 -12
  55. package/build/lib/logger.native.mjs.map +0 -1
  56. package/build/lib/mutation.esm.js +0 -261
  57. package/build/lib/mutation.esm.js.map +0 -1
  58. package/build/lib/mutation.js +0 -266
  59. package/build/lib/mutation.js.map +0 -1
  60. package/build/lib/mutation.mjs +0 -261
  61. package/build/lib/mutation.mjs.map +0 -1
  62. package/build/lib/mutationCache.esm.js +0 -93
  63. package/build/lib/mutationCache.esm.js.map +0 -1
  64. package/build/lib/mutationCache.js +0 -97
  65. package/build/lib/mutationCache.js.map +0 -1
  66. package/build/lib/mutationCache.mjs +0 -93
  67. package/build/lib/mutationCache.mjs.map +0 -1
  68. package/build/lib/mutationObserver.esm.js +0 -132
  69. package/build/lib/mutationObserver.esm.js.map +0 -1
  70. package/build/lib/mutationObserver.js +0 -136
  71. package/build/lib/mutationObserver.js.map +0 -1
  72. package/build/lib/mutationObserver.mjs +0 -132
  73. package/build/lib/mutationObserver.mjs.map +0 -1
  74. package/build/lib/notifyManager.esm.js +0 -99
  75. package/build/lib/notifyManager.esm.js.map +0 -1
  76. package/build/lib/notifyManager.js +0 -104
  77. package/build/lib/notifyManager.js.map +0 -1
  78. package/build/lib/notifyManager.mjs +0 -99
  79. package/build/lib/notifyManager.mjs.map +0 -1
  80. package/build/lib/onlineManager.esm.js +0 -93
  81. package/build/lib/onlineManager.esm.js.map +0 -1
  82. package/build/lib/onlineManager.js +0 -98
  83. package/build/lib/onlineManager.js.map +0 -1
  84. package/build/lib/onlineManager.mjs +0 -93
  85. package/build/lib/onlineManager.mjs.map +0 -1
  86. package/build/lib/queriesObserver.esm.js +0 -168
  87. package/build/lib/queriesObserver.esm.js.map +0 -1
  88. package/build/lib/queriesObserver.js +0 -172
  89. package/build/lib/queriesObserver.js.map +0 -1
  90. package/build/lib/queriesObserver.mjs +0 -168
  91. package/build/lib/queriesObserver.mjs.map +0 -1
  92. package/build/lib/query.esm.js +0 -475
  93. package/build/lib/query.esm.js.map +0 -1
  94. package/build/lib/query.js +0 -479
  95. package/build/lib/query.js.map +0 -1
  96. package/build/lib/query.mjs +0 -475
  97. package/build/lib/query.mjs.map +0 -1
  98. package/build/lib/queryCache.esm.js +0 -127
  99. package/build/lib/queryCache.esm.js.map +0 -1
  100. package/build/lib/queryCache.js +0 -131
  101. package/build/lib/queryCache.js.map +0 -1
  102. package/build/lib/queryCache.mjs +0 -127
  103. package/build/lib/queryCache.mjs.map +0 -1
  104. package/build/lib/queryClient.esm.js +0 -356
  105. package/build/lib/queryClient.esm.js.map +0 -1
  106. package/build/lib/queryClient.js +0 -360
  107. package/build/lib/queryClient.js.map +0 -1
  108. package/build/lib/queryClient.mjs +0 -356
  109. package/build/lib/queryClient.mjs.map +0 -1
  110. package/build/lib/queryObserver.esm.js +0 -580
  111. package/build/lib/queryObserver.esm.js.map +0 -1
  112. package/build/lib/queryObserver.js +0 -584
  113. package/build/lib/queryObserver.js.map +0 -1
  114. package/build/lib/queryObserver.mjs +0 -580
  115. package/build/lib/queryObserver.mjs.map +0 -1
  116. package/build/lib/removable.esm.js +0 -33
  117. package/build/lib/removable.esm.js.map +0 -1
  118. package/build/lib/removable.js +0 -37
  119. package/build/lib/removable.js.map +0 -1
  120. package/build/lib/removable.mjs +0 -33
  121. package/build/lib/removable.mjs.map +0 -1
  122. package/build/lib/retryer.esm.js +0 -167
  123. package/build/lib/retryer.esm.js.map +0 -1
  124. package/build/lib/retryer.js +0 -174
  125. package/build/lib/retryer.js.map +0 -1
  126. package/build/lib/retryer.mjs +0 -167
  127. package/build/lib/retryer.mjs.map +0 -1
  128. package/build/lib/subscribable.esm.js +0 -32
  129. package/build/lib/subscribable.esm.js.map +0 -1
  130. package/build/lib/subscribable.js +0 -36
  131. package/build/lib/subscribable.js.map +0 -1
  132. package/build/lib/subscribable.mjs +0 -32
  133. package/build/lib/subscribable.mjs.map +0 -1
  134. package/build/lib/utils.esm.js +0 -320
  135. package/build/lib/utils.esm.js.map +0 -1
  136. package/build/lib/utils.js +0 -350
  137. package/build/lib/utils.js.map +0 -1
  138. package/build/lib/utils.mjs +0 -320
  139. package/build/lib/utils.mjs.map +0 -1
  140. package/build/umd/index.development.js +0 -3307
  141. package/build/umd/index.development.js.map +0 -1
  142. package/build/umd/index.production.js +0 -2
  143. package/build/umd/index.production.js.map +0 -1
@@ -1,109 +0,0 @@
1
- // TYPES
2
- // FUNCTIONS
3
- function dehydrateMutation(mutation) {
4
- return {
5
- mutationKey: mutation.options.mutationKey,
6
- state: mutation.state
7
- };
8
- } // Most config is not dehydrated but instead meant to configure again when
9
- // consuming the de/rehydrated data, typically with useQuery on the client.
10
- // Sometimes it might make sense to prefetch data on the server and include
11
- // in the html-payload, but not consume it on the initial render.
12
-
13
-
14
- function dehydrateQuery(query) {
15
- return {
16
- state: query.state,
17
- queryKey: query.queryKey,
18
- queryHash: query.queryHash
19
- };
20
- }
21
-
22
- function defaultShouldDehydrateMutation(mutation) {
23
- return mutation.state.isPaused;
24
- }
25
- function defaultShouldDehydrateQuery(query) {
26
- return query.state.status === 'success';
27
- }
28
- function dehydrate(client, options = {}) {
29
- const mutations = [];
30
- const queries = [];
31
-
32
- if (options.dehydrateMutations !== false) {
33
- const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;
34
- client.getMutationCache().getAll().forEach(mutation => {
35
- if (shouldDehydrateMutation(mutation)) {
36
- mutations.push(dehydrateMutation(mutation));
37
- }
38
- });
39
- }
40
-
41
- if (options.dehydrateQueries !== false) {
42
- const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;
43
- client.getQueryCache().getAll().forEach(query => {
44
- if (shouldDehydrateQuery(query)) {
45
- queries.push(dehydrateQuery(query));
46
- }
47
- });
48
- }
49
-
50
- return {
51
- mutations,
52
- queries
53
- };
54
- }
55
- function hydrate(client, dehydratedState, options) {
56
- if (typeof dehydratedState !== 'object' || dehydratedState === null) {
57
- return;
58
- }
59
-
60
- const mutationCache = client.getMutationCache();
61
- const queryCache = client.getQueryCache(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
62
-
63
- const mutations = dehydratedState.mutations || []; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
64
-
65
- const queries = dehydratedState.queries || [];
66
- mutations.forEach(dehydratedMutation => {
67
- var _options$defaultOptio;
68
-
69
- mutationCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),
70
- mutationKey: dehydratedMutation.mutationKey
71
- }, dehydratedMutation.state);
72
- });
73
- queries.forEach(({
74
- queryKey,
75
- state,
76
- queryHash
77
- }) => {
78
- var _options$defaultOptio2;
79
-
80
- const query = queryCache.get(queryHash); // Do not hydrate if an existing query exists with newer data
81
-
82
- if (query) {
83
- if (query.state.dataUpdatedAt < state.dataUpdatedAt) {
84
- // omit fetchStatus from dehydrated state
85
- // so that query stays in its current fetchStatus
86
- const {
87
- fetchStatus: _ignored,
88
- ...dehydratedQueryState
89
- } = state;
90
- query.setState(dehydratedQueryState);
91
- }
92
-
93
- return;
94
- } // Restore query
95
-
96
-
97
- queryCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),
98
- queryKey,
99
- queryHash
100
- }, // Reset fetch status to idle to avoid
101
- // query being stuck in fetching state upon hydration
102
- { ...state,
103
- fetchStatus: 'idle'
104
- });
105
- });
106
- }
107
-
108
- export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate };
109
- //# sourceMappingURL=hydration.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hydration.mjs","sources":["../../src/hydration.ts"],"sourcesContent":["import type { QueryClient } from './queryClient'\nimport type { Query, QueryState } from './query'\nimport type {\n MutationKey,\n MutationOptions,\n QueryKey,\n QueryOptions,\n} from './types'\nimport type { Mutation, MutationState } from './mutation'\n\n// TYPES\n\nexport interface DehydrateOptions {\n dehydrateMutations?: boolean\n dehydrateQueries?: boolean\n shouldDehydrateMutation?: ShouldDehydrateMutationFunction\n shouldDehydrateQuery?: ShouldDehydrateQueryFunction\n}\n\nexport interface HydrateOptions {\n defaultOptions?: {\n queries?: QueryOptions\n mutations?: MutationOptions\n }\n}\n\ninterface DehydratedMutation {\n mutationKey?: MutationKey\n state: MutationState\n}\n\ninterface DehydratedQuery {\n queryHash: string\n queryKey: QueryKey\n state: QueryState\n}\n\nexport interface DehydratedState {\n mutations: DehydratedMutation[]\n queries: DehydratedQuery[]\n}\n\nexport type ShouldDehydrateQueryFunction = (query: Query) => boolean\n\nexport type ShouldDehydrateMutationFunction = (mutation: Mutation) => boolean\n\n// FUNCTIONS\n\nfunction dehydrateMutation(mutation: Mutation): DehydratedMutation {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n }\n}\n\n// Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\nfunction dehydrateQuery(query: Query): DehydratedQuery {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n }\n}\n\nexport function defaultShouldDehydrateMutation(mutation: Mutation) {\n return mutation.state.isPaused\n}\n\nexport function defaultShouldDehydrateQuery(query: Query) {\n return query.state.status === 'success'\n}\n\nexport function dehydrate(\n client: QueryClient,\n options: DehydrateOptions = {},\n): DehydratedState {\n const mutations: DehydratedMutation[] = []\n const queries: DehydratedQuery[] = []\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation =\n options.shouldDehydrateMutation || defaultShouldDehydrateMutation\n\n client\n .getMutationCache()\n .getAll()\n .forEach((mutation) => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation))\n }\n })\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery =\n options.shouldDehydrateQuery || defaultShouldDehydrateQuery\n\n client\n .getQueryCache()\n .getAll()\n .forEach((query) => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query))\n }\n })\n }\n\n return { mutations, queries }\n}\n\nexport function hydrate(\n client: QueryClient,\n dehydratedState: unknown,\n options?: HydrateOptions,\n): void {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return\n }\n\n const mutationCache = client.getMutationCache()\n const queryCache = client.getQueryCache()\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const mutations = (dehydratedState as DehydratedState).mutations || []\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const queries = (dehydratedState as DehydratedState).queries || []\n\n mutations.forEach((dehydratedMutation) => {\n mutationCache.build(\n client,\n {\n ...options?.defaultOptions?.mutations,\n mutationKey: dehydratedMutation.mutationKey,\n },\n dehydratedMutation.state,\n )\n })\n\n queries.forEach(({ queryKey, state, queryHash }) => {\n const query = queryCache.get(queryHash)\n\n // Do not hydrate if an existing query exists with newer data\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n // omit fetchStatus from dehydrated state\n // so that query stays in its current fetchStatus\n const { fetchStatus: _ignored, ...dehydratedQueryState } = state\n query.setState(dehydratedQueryState)\n }\n return\n }\n\n // Restore query\n queryCache.build(\n client,\n {\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n fetchStatus: 'idle',\n },\n )\n })\n}\n"],"names":["dehydrateMutation","mutation","mutationKey","options","state","dehydrateQuery","query","queryKey","queryHash","defaultShouldDehydrateMutation","isPaused","defaultShouldDehydrateQuery","status","dehydrate","client","mutations","queries","dehydrateMutations","shouldDehydrateMutation","getMutationCache","getAll","forEach","push","dehydrateQueries","shouldDehydrateQuery","getQueryCache","hydrate","dehydratedState","mutationCache","queryCache","dehydratedMutation","build","defaultOptions","get","dataUpdatedAt","fetchStatus","_ignored","dehydratedQueryState","setState"],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export { CancelledError, isCancelledError } from './retryer.esm.js';
2
- export { QueryCache } from './queryCache.esm.js';
3
- export { QueryClient } from './queryClient.esm.js';
4
- export { QueryObserver } from './queryObserver.esm.js';
5
- export { QueriesObserver } from './queriesObserver.esm.js';
6
- export { InfiniteQueryObserver } from './infiniteQueryObserver.esm.js';
7
- export { MutationCache } from './mutationCache.esm.js';
8
- export { MutationObserver } from './mutationObserver.esm.js';
9
- export { notifyManager } from './notifyManager.esm.js';
10
- export { focusManager } from './focusManager.esm.js';
11
- export { onlineManager } from './onlineManager.esm.js';
12
- export { hashQueryKey, isError, isServer, matchQuery, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, replaceEqualDeep } from './utils.esm.js';
13
- export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate } from './hydration.esm.js';
14
- export { Query } from './query.esm.js';
15
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var retryer = require('./retryer.js');
6
- var queryCache = require('./queryCache.js');
7
- var queryClient = require('./queryClient.js');
8
- var queryObserver = require('./queryObserver.js');
9
- var queriesObserver = require('./queriesObserver.js');
10
- var infiniteQueryObserver = require('./infiniteQueryObserver.js');
11
- var mutationCache = require('./mutationCache.js');
12
- var mutationObserver = require('./mutationObserver.js');
13
- var notifyManager = require('./notifyManager.js');
14
- var focusManager = require('./focusManager.js');
15
- var onlineManager = require('./onlineManager.js');
16
- var utils = require('./utils.js');
17
- var hydration = require('./hydration.js');
18
- var query = require('./query.js');
19
-
20
-
21
-
22
- exports.CancelledError = retryer.CancelledError;
23
- exports.isCancelledError = retryer.isCancelledError;
24
- exports.QueryCache = queryCache.QueryCache;
25
- exports.QueryClient = queryClient.QueryClient;
26
- exports.QueryObserver = queryObserver.QueryObserver;
27
- exports.QueriesObserver = queriesObserver.QueriesObserver;
28
- exports.InfiniteQueryObserver = infiniteQueryObserver.InfiniteQueryObserver;
29
- exports.MutationCache = mutationCache.MutationCache;
30
- exports.MutationObserver = mutationObserver.MutationObserver;
31
- exports.notifyManager = notifyManager.notifyManager;
32
- exports.focusManager = focusManager.focusManager;
33
- exports.onlineManager = onlineManager.onlineManager;
34
- exports.hashQueryKey = utils.hashQueryKey;
35
- exports.isError = utils.isError;
36
- exports.isServer = utils.isServer;
37
- exports.matchQuery = utils.matchQuery;
38
- exports.parseFilterArgs = utils.parseFilterArgs;
39
- exports.parseMutationArgs = utils.parseMutationArgs;
40
- exports.parseMutationFilterArgs = utils.parseMutationFilterArgs;
41
- exports.parseQueryArgs = utils.parseQueryArgs;
42
- exports.replaceEqualDeep = utils.replaceEqualDeep;
43
- exports.defaultShouldDehydrateMutation = hydration.defaultShouldDehydrateMutation;
44
- exports.defaultShouldDehydrateQuery = hydration.defaultShouldDehydrateQuery;
45
- exports.dehydrate = hydration.dehydrate;
46
- exports.hydrate = hydration.hydrate;
47
- exports.Query = query.Query;
48
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,15 +0,0 @@
1
- export { CancelledError, isCancelledError } from './retryer.mjs';
2
- export { QueryCache } from './queryCache.mjs';
3
- export { QueryClient } from './queryClient.mjs';
4
- export { QueryObserver } from './queryObserver.mjs';
5
- export { QueriesObserver } from './queriesObserver.mjs';
6
- export { InfiniteQueryObserver } from './infiniteQueryObserver.mjs';
7
- export { MutationCache } from './mutationCache.mjs';
8
- export { MutationObserver } from './mutationObserver.mjs';
9
- export { notifyManager } from './notifyManager.mjs';
10
- export { focusManager } from './focusManager.mjs';
11
- export { onlineManager } from './onlineManager.mjs';
12
- export { hashQueryKey, isError, isServer, matchQuery, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, replaceEqualDeep } from './utils.mjs';
13
- export { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate } from './hydration.mjs';
14
- export { Query } from './query.mjs';
15
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,146 +0,0 @@
1
- function infiniteQueryBehavior() {
2
- return {
3
- onFetch: context => {
4
- context.fetchFn = () => {
5
- var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;
6
-
7
- const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;
8
- const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;
9
- const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;
10
- const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';
11
- const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';
12
- const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];
13
- const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];
14
- let newPageParams = oldPageParams;
15
- let cancelled = false;
16
-
17
- const addSignalProperty = object => {
18
- Object.defineProperty(object, 'signal', {
19
- enumerable: true,
20
- get: () => {
21
- var _context$signal;
22
-
23
- if ((_context$signal = context.signal) != null && _context$signal.aborted) {
24
- cancelled = true;
25
- } else {
26
- var _context$signal2;
27
-
28
- (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {
29
- cancelled = true;
30
- });
31
- }
32
-
33
- return context.signal;
34
- }
35
- });
36
- }; // Get query function
37
-
38
-
39
- const queryFn = context.options.queryFn || (() => Promise.reject("Missing queryFn for queryKey '" + context.options.queryHash + "'"));
40
-
41
- const buildNewPages = (pages, param, page, previous) => {
42
- newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];
43
- return previous ? [page, ...pages] : [...pages, page];
44
- }; // Create function to fetch a page
45
-
46
-
47
- const fetchPage = (pages, manual, param, previous) => {
48
- if (cancelled) {
49
- return Promise.reject('Cancelled');
50
- }
51
-
52
- if (typeof param === 'undefined' && !manual && pages.length) {
53
- return Promise.resolve(pages);
54
- }
55
-
56
- const queryFnContext = {
57
- queryKey: context.queryKey,
58
- pageParam: param,
59
- meta: context.options.meta
60
- };
61
- addSignalProperty(queryFnContext);
62
- const queryFnResult = queryFn(queryFnContext);
63
- const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));
64
- return promise;
65
- };
66
-
67
- let promise; // Fetch first page?
68
-
69
- if (!oldPages.length) {
70
- promise = fetchPage([]);
71
- } // Fetch next page?
72
- else if (isFetchingNextPage) {
73
- const manual = typeof pageParam !== 'undefined';
74
- const param = manual ? pageParam : getNextPageParam(context.options, oldPages);
75
- promise = fetchPage(oldPages, manual, param);
76
- } // Fetch previous page?
77
- else if (isFetchingPreviousPage) {
78
- const manual = typeof pageParam !== 'undefined';
79
- const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);
80
- promise = fetchPage(oldPages, manual, param, true);
81
- } // Refetch pages
82
- else {
83
- newPageParams = [];
84
- const manual = typeof context.options.getNextPageParam === 'undefined';
85
- const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page
86
-
87
- promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages
88
-
89
- for (let i = 1; i < oldPages.length; i++) {
90
- promise = promise.then(pages => {
91
- const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;
92
-
93
- if (shouldFetchNextPage) {
94
- const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);
95
- return fetchPage(pages, manual, param);
96
- }
97
-
98
- return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));
99
- });
100
- }
101
- }
102
-
103
- const finalPromise = promise.then(pages => ({
104
- pages,
105
- pageParams: newPageParams
106
- }));
107
- return finalPromise;
108
- };
109
- }
110
- };
111
- }
112
- function getNextPageParam(options, pages) {
113
- return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);
114
- }
115
- function getPreviousPageParam(options, pages) {
116
- return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);
117
- }
118
- /**
119
- * Checks if there is a next page.
120
- * Returns `undefined` if it cannot be determined.
121
- */
122
-
123
- function hasNextPage(options, pages) {
124
- if (options.getNextPageParam && Array.isArray(pages)) {
125
- const nextPageParam = getNextPageParam(options, pages);
126
- return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;
127
- }
128
-
129
- return;
130
- }
131
- /**
132
- * Checks if there is a previous page.
133
- * Returns `undefined` if it cannot be determined.
134
- */
135
-
136
- function hasPreviousPage(options, pages) {
137
- if (options.getPreviousPageParam && Array.isArray(pages)) {
138
- const previousPageParam = getPreviousPageParam(options, pages);
139
- return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;
140
- }
141
-
142
- return;
143
- }
144
-
145
- export { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };
146
- //# sourceMappingURL=infiniteQueryBehavior.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"infiniteQueryBehavior.esm.js","sources":["../../src/infiniteQueryBehavior.ts"],"sourcesContent":["import type { QueryBehavior } from './query'\n\nimport type {\n InfiniteData,\n QueryFunctionContext,\n QueryOptions,\n RefetchQueryFilters,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = () => {\n const refetchPage: RefetchQueryFilters['refetchPage'] | undefined =\n context.fetchOptions?.meta?.refetchPage\n const fetchMore = context.fetchOptions?.meta?.fetchMore\n const pageParam = fetchMore?.pageParam\n const isFetchingNextPage = fetchMore?.direction === 'forward'\n const isFetchingPreviousPage = fetchMore?.direction === 'backward'\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n let newPageParams = oldPageParams\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal?.aborted) {\n cancelled = true\n } else {\n context.signal?.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() =>\n Promise.reject(\n `Missing queryFn for queryKey '${context.options.queryHash}'`,\n ))\n\n const buildNewPages = (\n pages: unknown[],\n param: unknown,\n page: unknown,\n previous?: boolean,\n ) => {\n newPageParams = previous\n ? [param, ...newPageParams]\n : [...newPageParams, param]\n return previous ? [page, ...pages] : [...pages, page]\n }\n\n // Create function to fetch a page\n const fetchPage = (\n pages: unknown[],\n manual?: boolean,\n param?: unknown,\n previous?: boolean,\n ): Promise<unknown[]> => {\n if (cancelled) {\n return Promise.reject('Cancelled')\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages)\n }\n\n const queryFnContext: QueryFunctionContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const queryFnResult = queryFn(queryFnContext)\n\n const promise = Promise.resolve(queryFnResult).then((page) =>\n buildNewPages(pages, param, page, previous),\n )\n\n return promise\n }\n\n let promise: Promise<unknown[]>\n\n // Fetch first page?\n if (!oldPages.length) {\n promise = fetchPage([])\n }\n\n // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getNextPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param)\n }\n\n // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getPreviousPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param, true)\n }\n\n // Refetch pages\n else {\n newPageParams = []\n\n const manual = typeof context.options.getNextPageParam === 'undefined'\n\n const shouldFetchFirstPage =\n refetchPage && oldPages[0]\n ? refetchPage(oldPages[0], 0, oldPages)\n : true\n\n // Fetch first page\n promise = shouldFetchFirstPage\n ? fetchPage([], manual, oldPageParams[0])\n : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0]))\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then((pages) => {\n const shouldFetchNextPage =\n refetchPage && oldPages[i]\n ? refetchPage(oldPages[i], i, oldPages)\n : true\n\n if (shouldFetchNextPage) {\n const param = manual\n ? oldPageParams[i]\n : getNextPageParam(context.options, pages)\n return fetchPage(pages, manual, param)\n }\n return Promise.resolve(\n buildNewPages(pages, oldPageParams[i], oldPages[i]),\n )\n })\n }\n }\n\n const finalPromise = promise.then((pages) => ({\n pages,\n pageParams: newPageParams,\n }))\n\n return finalPromise\n }\n },\n }\n}\n\nexport function getNextPageParam(\n options: QueryOptions<any, any>,\n pages: unknown[],\n): unknown | undefined {\n return options.getNextPageParam?.(pages[pages.length - 1], pages)\n}\n\nexport function getPreviousPageParam(\n options: QueryOptions<any, any>,\n pages: unknown[],\n): unknown | undefined {\n return options.getPreviousPageParam?.(pages[0], pages)\n}\n\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasNextPage(\n options: QueryOptions<any, any, any, any>,\n pages?: unknown,\n): boolean | undefined {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages)\n return (\n typeof nextPageParam !== 'undefined' &&\n nextPageParam !== null &&\n nextPageParam !== false\n )\n }\n return\n}\n\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasPreviousPage(\n options: QueryOptions<any, any, any, any>,\n pages?: unknown,\n): boolean | undefined {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages)\n return (\n typeof previousPageParam !== 'undefined' &&\n previousPageParam !== null &&\n previousPageParam !== false\n )\n }\n return\n}\n"],"names":["infiniteQueryBehavior","onFetch","context","fetchFn","refetchPage","fetchOptions","meta","fetchMore","pageParam","isFetchingNextPage","direction","isFetchingPreviousPage","oldPages","state","data","pages","oldPageParams","pageParams","newPageParams","cancelled","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","aborted","addEventListener","queryFn","options","Promise","reject","queryHash","buildNewPages","param","page","previous","fetchPage","manual","length","resolve","queryFnContext","queryKey","queryFnResult","promise","then","getNextPageParam","getPreviousPageParam","shouldFetchFirstPage","i","shouldFetchNextPage","finalPromise","hasNextPage","Array","isArray","nextPageParam","hasPreviousPage","previousPageParam"],"mappings":"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"}
@@ -1,154 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function infiniteQueryBehavior() {
6
- return {
7
- onFetch: context => {
8
- context.fetchFn = () => {
9
- var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;
10
-
11
- const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;
12
- const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;
13
- const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;
14
- const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';
15
- const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';
16
- const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];
17
- const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];
18
- let newPageParams = oldPageParams;
19
- let cancelled = false;
20
-
21
- const addSignalProperty = object => {
22
- Object.defineProperty(object, 'signal', {
23
- enumerable: true,
24
- get: () => {
25
- var _context$signal;
26
-
27
- if ((_context$signal = context.signal) != null && _context$signal.aborted) {
28
- cancelled = true;
29
- } else {
30
- var _context$signal2;
31
-
32
- (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {
33
- cancelled = true;
34
- });
35
- }
36
-
37
- return context.signal;
38
- }
39
- });
40
- }; // Get query function
41
-
42
-
43
- const queryFn = context.options.queryFn || (() => Promise.reject("Missing queryFn for queryKey '" + context.options.queryHash + "'"));
44
-
45
- const buildNewPages = (pages, param, page, previous) => {
46
- newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];
47
- return previous ? [page, ...pages] : [...pages, page];
48
- }; // Create function to fetch a page
49
-
50
-
51
- const fetchPage = (pages, manual, param, previous) => {
52
- if (cancelled) {
53
- return Promise.reject('Cancelled');
54
- }
55
-
56
- if (typeof param === 'undefined' && !manual && pages.length) {
57
- return Promise.resolve(pages);
58
- }
59
-
60
- const queryFnContext = {
61
- queryKey: context.queryKey,
62
- pageParam: param,
63
- meta: context.options.meta
64
- };
65
- addSignalProperty(queryFnContext);
66
- const queryFnResult = queryFn(queryFnContext);
67
- const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));
68
- return promise;
69
- };
70
-
71
- let promise; // Fetch first page?
72
-
73
- if (!oldPages.length) {
74
- promise = fetchPage([]);
75
- } // Fetch next page?
76
- else if (isFetchingNextPage) {
77
- const manual = typeof pageParam !== 'undefined';
78
- const param = manual ? pageParam : getNextPageParam(context.options, oldPages);
79
- promise = fetchPage(oldPages, manual, param);
80
- } // Fetch previous page?
81
- else if (isFetchingPreviousPage) {
82
- const manual = typeof pageParam !== 'undefined';
83
- const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);
84
- promise = fetchPage(oldPages, manual, param, true);
85
- } // Refetch pages
86
- else {
87
- newPageParams = [];
88
- const manual = typeof context.options.getNextPageParam === 'undefined';
89
- const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page
90
-
91
- promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages
92
-
93
- for (let i = 1; i < oldPages.length; i++) {
94
- promise = promise.then(pages => {
95
- const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;
96
-
97
- if (shouldFetchNextPage) {
98
- const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);
99
- return fetchPage(pages, manual, param);
100
- }
101
-
102
- return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));
103
- });
104
- }
105
- }
106
-
107
- const finalPromise = promise.then(pages => ({
108
- pages,
109
- pageParams: newPageParams
110
- }));
111
- return finalPromise;
112
- };
113
- }
114
- };
115
- }
116
- function getNextPageParam(options, pages) {
117
- return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);
118
- }
119
- function getPreviousPageParam(options, pages) {
120
- return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);
121
- }
122
- /**
123
- * Checks if there is a next page.
124
- * Returns `undefined` if it cannot be determined.
125
- */
126
-
127
- function hasNextPage(options, pages) {
128
- if (options.getNextPageParam && Array.isArray(pages)) {
129
- const nextPageParam = getNextPageParam(options, pages);
130
- return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;
131
- }
132
-
133
- return;
134
- }
135
- /**
136
- * Checks if there is a previous page.
137
- * Returns `undefined` if it cannot be determined.
138
- */
139
-
140
- function hasPreviousPage(options, pages) {
141
- if (options.getPreviousPageParam && Array.isArray(pages)) {
142
- const previousPageParam = getPreviousPageParam(options, pages);
143
- return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;
144
- }
145
-
146
- return;
147
- }
148
-
149
- exports.getNextPageParam = getNextPageParam;
150
- exports.getPreviousPageParam = getPreviousPageParam;
151
- exports.hasNextPage = hasNextPage;
152
- exports.hasPreviousPage = hasPreviousPage;
153
- exports.infiniteQueryBehavior = infiniteQueryBehavior;
154
- //# sourceMappingURL=infiniteQueryBehavior.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"infiniteQueryBehavior.js","sources":["../../src/infiniteQueryBehavior.ts"],"sourcesContent":["import type { QueryBehavior } from './query'\n\nimport type {\n InfiniteData,\n QueryFunctionContext,\n QueryOptions,\n RefetchQueryFilters,\n} from './types'\n\nexport function infiniteQueryBehavior<\n TQueryFnData,\n TError,\n TData,\n>(): QueryBehavior<TQueryFnData, TError, InfiniteData<TData>> {\n return {\n onFetch: (context) => {\n context.fetchFn = () => {\n const refetchPage: RefetchQueryFilters['refetchPage'] | undefined =\n context.fetchOptions?.meta?.refetchPage\n const fetchMore = context.fetchOptions?.meta?.fetchMore\n const pageParam = fetchMore?.pageParam\n const isFetchingNextPage = fetchMore?.direction === 'forward'\n const isFetchingPreviousPage = fetchMore?.direction === 'backward'\n const oldPages = context.state.data?.pages || []\n const oldPageParams = context.state.data?.pageParams || []\n let newPageParams = oldPageParams\n let cancelled = false\n\n const addSignalProperty = (object: unknown) => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (context.signal?.aborted) {\n cancelled = true\n } else {\n context.signal?.addEventListener('abort', () => {\n cancelled = true\n })\n }\n return context.signal\n },\n })\n }\n\n // Get query function\n const queryFn =\n context.options.queryFn ||\n (() =>\n Promise.reject(\n `Missing queryFn for queryKey '${context.options.queryHash}'`,\n ))\n\n const buildNewPages = (\n pages: unknown[],\n param: unknown,\n page: unknown,\n previous?: boolean,\n ) => {\n newPageParams = previous\n ? [param, ...newPageParams]\n : [...newPageParams, param]\n return previous ? [page, ...pages] : [...pages, page]\n }\n\n // Create function to fetch a page\n const fetchPage = (\n pages: unknown[],\n manual?: boolean,\n param?: unknown,\n previous?: boolean,\n ): Promise<unknown[]> => {\n if (cancelled) {\n return Promise.reject('Cancelled')\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages)\n }\n\n const queryFnContext: QueryFunctionContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta,\n }\n\n addSignalProperty(queryFnContext)\n\n const queryFnResult = queryFn(queryFnContext)\n\n const promise = Promise.resolve(queryFnResult).then((page) =>\n buildNewPages(pages, param, page, previous),\n )\n\n return promise\n }\n\n let promise: Promise<unknown[]>\n\n // Fetch first page?\n if (!oldPages.length) {\n promise = fetchPage([])\n }\n\n // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getNextPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param)\n }\n\n // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined'\n const param = manual\n ? pageParam\n : getPreviousPageParam(context.options, oldPages)\n promise = fetchPage(oldPages, manual, param, true)\n }\n\n // Refetch pages\n else {\n newPageParams = []\n\n const manual = typeof context.options.getNextPageParam === 'undefined'\n\n const shouldFetchFirstPage =\n refetchPage && oldPages[0]\n ? refetchPage(oldPages[0], 0, oldPages)\n : true\n\n // Fetch first page\n promise = shouldFetchFirstPage\n ? fetchPage([], manual, oldPageParams[0])\n : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0]))\n\n // Fetch remaining pages\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then((pages) => {\n const shouldFetchNextPage =\n refetchPage && oldPages[i]\n ? refetchPage(oldPages[i], i, oldPages)\n : true\n\n if (shouldFetchNextPage) {\n const param = manual\n ? oldPageParams[i]\n : getNextPageParam(context.options, pages)\n return fetchPage(pages, manual, param)\n }\n return Promise.resolve(\n buildNewPages(pages, oldPageParams[i], oldPages[i]),\n )\n })\n }\n }\n\n const finalPromise = promise.then((pages) => ({\n pages,\n pageParams: newPageParams,\n }))\n\n return finalPromise\n }\n },\n }\n}\n\nexport function getNextPageParam(\n options: QueryOptions<any, any>,\n pages: unknown[],\n): unknown | undefined {\n return options.getNextPageParam?.(pages[pages.length - 1], pages)\n}\n\nexport function getPreviousPageParam(\n options: QueryOptions<any, any>,\n pages: unknown[],\n): unknown | undefined {\n return options.getPreviousPageParam?.(pages[0], pages)\n}\n\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasNextPage(\n options: QueryOptions<any, any, any, any>,\n pages?: unknown,\n): boolean | undefined {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages)\n return (\n typeof nextPageParam !== 'undefined' &&\n nextPageParam !== null &&\n nextPageParam !== false\n )\n }\n return\n}\n\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\nexport function hasPreviousPage(\n options: QueryOptions<any, any, any, any>,\n pages?: unknown,\n): boolean | undefined {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages)\n return (\n typeof previousPageParam !== 'undefined' &&\n previousPageParam !== null &&\n previousPageParam !== false\n )\n }\n return\n}\n"],"names":["infiniteQueryBehavior","onFetch","context","fetchFn","refetchPage","fetchOptions","meta","fetchMore","pageParam","isFetchingNextPage","direction","isFetchingPreviousPage","oldPages","state","data","pages","oldPageParams","pageParams","newPageParams","cancelled","addSignalProperty","object","Object","defineProperty","enumerable","get","signal","aborted","addEventListener","queryFn","options","Promise","reject","queryHash","buildNewPages","param","page","previous","fetchPage","manual","length","resolve","queryFnContext","queryKey","queryFnResult","promise","then","getNextPageParam","getPreviousPageParam","shouldFetchFirstPage","i","shouldFetchNextPage","finalPromise","hasNextPage","Array","isArray","nextPageParam","hasPreviousPage","previousPageParam"],"mappings":"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"}