@tanstack/query-core 4.3.0-beta.1 → 4.3.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/focusManager.js +91 -0
- package/build/lib/focusManager.js.map +1 -0
- package/build/lib/focusManager.mjs +86 -0
- package/build/lib/focusManager.mjs.map +1 -0
- package/build/lib/hydration.js +102 -0
- package/build/lib/hydration.js.map +1 -0
- package/build/lib/hydration.mjs +97 -0
- package/build/lib/hydration.mjs.map +1 -0
- package/build/lib/index.js +36 -3110
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs +13 -3091
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/infiniteQueryBehavior.js +150 -0
- package/build/lib/infiniteQueryBehavior.js.map +1 -0
- package/build/lib/infiniteQueryBehavior.mjs +142 -0
- package/build/lib/infiniteQueryBehavior.mjs.map +1 -0
- package/build/lib/infiniteQueryObserver.js +82 -0
- package/build/lib/infiniteQueryObserver.js.map +1 -0
- package/build/lib/infiniteQueryObserver.mjs +78 -0
- package/build/lib/infiniteQueryObserver.mjs.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.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.js +248 -0
- package/build/lib/mutation.js.map +1 -0
- package/build/lib/mutation.mjs +243 -0
- package/build/lib/mutation.mjs.map +1 -0
- package/build/lib/mutationCache.js +89 -0
- package/build/lib/mutationCache.js.map +1 -0
- package/build/lib/mutationCache.mjs +85 -0
- package/build/lib/mutationCache.mjs.map +1 -0
- package/build/lib/mutationObserver.js +130 -0
- package/build/lib/mutationObserver.js.map +1 -0
- package/build/lib/mutationObserver.mjs +126 -0
- package/build/lib/mutationObserver.mjs.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.js +90 -0
- package/build/lib/onlineManager.js.map +1 -0
- package/build/lib/onlineManager.mjs +85 -0
- package/build/lib/onlineManager.mjs.map +1 -0
- package/build/lib/queriesObserver.js +160 -0
- package/build/lib/queriesObserver.js.map +1 -0
- package/build/lib/queriesObserver.mjs +156 -0
- package/build/lib/queriesObserver.mjs.map +1 -0
- package/build/lib/query.js +464 -0
- package/build/lib/query.js.map +1 -0
- package/build/lib/query.mjs +460 -0
- package/build/lib/query.mjs.map +1 -0
- package/build/lib/queryCache.js +130 -0
- package/build/lib/queryCache.js.map +1 -0
- package/build/lib/queryCache.mjs +126 -0
- package/build/lib/queryCache.mjs.map +1 -0
- package/build/lib/queryClient.js +343 -0
- package/build/lib/queryClient.js.map +1 -0
- package/build/lib/queryClient.mjs +339 -0
- package/build/lib/queryClient.mjs.map +1 -0
- package/build/lib/queryObserver.js +519 -0
- package/build/lib/queryObserver.js.map +1 -0
- package/build/lib/queryObserver.mjs +515 -0
- package/build/lib/queryObserver.mjs.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.js +167 -0
- package/build/lib/retryer.js.map +1 -0
- package/build/lib/retryer.mjs +160 -0
- package/build/lib/retryer.mjs.map +1 -0
- package/build/lib/subscribable.js +33 -0
- package/build/lib/subscribable.js.map +1 -0
- package/build/lib/subscribable.mjs +29 -0
- package/build/lib/subscribable.mjs.map +1 -0
- package/build/lib/utils.js +348 -0
- package/build/lib/utils.js.map +1 -0
- package/build/lib/utils.mjs +318 -0
- package/build/lib/utils.mjs.map +1 -0
- package/build/umd/index.development.js +0 -10
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +0 -10
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,150 @@
|
|
|
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'));
|
|
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.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
|
+
/**
|
|
134
|
+
* Checks if there is a previous page.
|
|
135
|
+
* Returns `undefined` if it cannot be determined.
|
|
136
|
+
*/
|
|
137
|
+
|
|
138
|
+
function hasPreviousPage(options, pages) {
|
|
139
|
+
if (options.getPreviousPageParam && Array.isArray(pages)) {
|
|
140
|
+
const previousPageParam = getPreviousPageParam(options, pages);
|
|
141
|
+
return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
exports.getNextPageParam = getNextPageParam;
|
|
146
|
+
exports.getPreviousPageParam = getPreviousPageParam;
|
|
147
|
+
exports.hasNextPage = hasNextPage;
|
|
148
|
+
exports.hasPreviousPage = hasPreviousPage;
|
|
149
|
+
exports.infiniteQueryBehavior = infiniteQueryBehavior;
|
|
150
|
+
//# sourceMappingURL=infiniteQueryBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 || (() => Promise.reject('Missing queryFn'))\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.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}\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}\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","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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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
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'));
|
|
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.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
|
+
/**
|
|
130
|
+
* Checks if there is a previous page.
|
|
131
|
+
* Returns `undefined` if it cannot be determined.
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
function hasPreviousPage(options, pages) {
|
|
135
|
+
if (options.getPreviousPageParam && Array.isArray(pages)) {
|
|
136
|
+
const previousPageParam = getPreviousPageParam(options, pages);
|
|
137
|
+
return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };
|
|
142
|
+
//# sourceMappingURL=infiniteQueryBehavior.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infiniteQueryBehavior.mjs","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 || (() => Promise.reject('Missing queryFn'))\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.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}\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}\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","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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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var queryObserver = require('./queryObserver.js');
|
|
6
|
+
var infiniteQueryBehavior = require('./infiniteQueryBehavior.js');
|
|
7
|
+
|
|
8
|
+
class InfiniteQueryObserver extends queryObserver.QueryObserver {
|
|
9
|
+
// Type override
|
|
10
|
+
// Type override
|
|
11
|
+
// Type override
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
13
|
+
constructor(client, options) {
|
|
14
|
+
super(client, options);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
bindMethods() {
|
|
18
|
+
super.bindMethods();
|
|
19
|
+
this.fetchNextPage = this.fetchNextPage.bind(this);
|
|
20
|
+
this.fetchPreviousPage = this.fetchPreviousPage.bind(this);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
setOptions(options, notifyOptions) {
|
|
24
|
+
super.setOptions({ ...options,
|
|
25
|
+
behavior: infiniteQueryBehavior.infiniteQueryBehavior()
|
|
26
|
+
}, notifyOptions);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getOptimisticResult(options) {
|
|
30
|
+
options.behavior = infiniteQueryBehavior.infiniteQueryBehavior();
|
|
31
|
+
return super.getOptimisticResult(options);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
fetchNextPage({
|
|
35
|
+
pageParam,
|
|
36
|
+
...options
|
|
37
|
+
} = {}) {
|
|
38
|
+
return this.fetch({ ...options,
|
|
39
|
+
meta: {
|
|
40
|
+
fetchMore: {
|
|
41
|
+
direction: 'forward',
|
|
42
|
+
pageParam
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
fetchPreviousPage({
|
|
49
|
+
pageParam,
|
|
50
|
+
...options
|
|
51
|
+
} = {}) {
|
|
52
|
+
return this.fetch({ ...options,
|
|
53
|
+
meta: {
|
|
54
|
+
fetchMore: {
|
|
55
|
+
direction: 'backward',
|
|
56
|
+
pageParam
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
createResult(query, options) {
|
|
63
|
+
var _state$data, _state$data2, _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet;
|
|
64
|
+
|
|
65
|
+
const {
|
|
66
|
+
state
|
|
67
|
+
} = query;
|
|
68
|
+
const result = super.createResult(query, options);
|
|
69
|
+
return { ...result,
|
|
70
|
+
fetchNextPage: this.fetchNextPage,
|
|
71
|
+
fetchPreviousPage: this.fetchPreviousPage,
|
|
72
|
+
hasNextPage: infiniteQueryBehavior.hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),
|
|
73
|
+
hasPreviousPage: infiniteQueryBehavior.hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),
|
|
74
|
+
isFetchingNextPage: state.fetchStatus === 'fetching' && ((_state$fetchMeta = state.fetchMeta) == null ? void 0 : (_state$fetchMeta$fetc = _state$fetchMeta.fetchMore) == null ? void 0 : _state$fetchMeta$fetc.direction) === 'forward',
|
|
75
|
+
isFetchingPreviousPage: state.fetchStatus === 'fetching' && ((_state$fetchMeta2 = state.fetchMeta) == null ? void 0 : (_state$fetchMeta2$fet = _state$fetchMeta2.fetchMore) == null ? void 0 : _state$fetchMeta2$fet.direction) === 'backward'
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.InfiniteQueryObserver = InfiniteQueryObserver;
|
|
82
|
+
//# sourceMappingURL=infiniteQueryObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infiniteQueryObserver.js","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport {\n NotifyOptions,\n ObserverFetchOptions,\n QueryObserver,\n} from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n InfiniteData<TData>,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage({ pageParam, ...options }: FetchNextPageOptions = {}): Promise<\n InfiniteQueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward', pageParam },\n },\n })\n }\n\n fetchPreviousPage({\n pageParam,\n ...options\n }: FetchPreviousPageOptions = {}): Promise<\n InfiniteQueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward', pageParam },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data?.pages),\n hasPreviousPage: hasPreviousPage(options, state.data?.pages),\n isFetchingNextPage:\n state.fetchStatus === 'fetching' &&\n state.fetchMeta?.fetchMore?.direction === 'forward',\n isFetchingPreviousPage:\n state.fetchStatus === 'fetching' &&\n state.fetchMeta?.fetchMore?.direction === 'backward',\n }\n }\n}\n"],"names":["InfiniteQueryObserver","QueryObserver","constructor","client","options","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","infiniteQueryBehavior","getOptimisticResult","pageParam","fetch","meta","fetchMore","direction","createResult","query","state","result","hasNextPage","data","pages","hasPreviousPage","isFetchingNextPage","fetchStatus","fetchMeta","isFetchingPreviousPage"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { QueryObserver } from './queryObserver.mjs';
|
|
2
|
+
import { infiniteQueryBehavior, hasNextPage, hasPreviousPage } from './infiniteQueryBehavior.mjs';
|
|
3
|
+
|
|
4
|
+
class InfiniteQueryObserver extends QueryObserver {
|
|
5
|
+
// Type override
|
|
6
|
+
// Type override
|
|
7
|
+
// Type override
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
9
|
+
constructor(client, options) {
|
|
10
|
+
super(client, options);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
bindMethods() {
|
|
14
|
+
super.bindMethods();
|
|
15
|
+
this.fetchNextPage = this.fetchNextPage.bind(this);
|
|
16
|
+
this.fetchPreviousPage = this.fetchPreviousPage.bind(this);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
setOptions(options, notifyOptions) {
|
|
20
|
+
super.setOptions({ ...options,
|
|
21
|
+
behavior: infiniteQueryBehavior()
|
|
22
|
+
}, notifyOptions);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
getOptimisticResult(options) {
|
|
26
|
+
options.behavior = infiniteQueryBehavior();
|
|
27
|
+
return super.getOptimisticResult(options);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
fetchNextPage({
|
|
31
|
+
pageParam,
|
|
32
|
+
...options
|
|
33
|
+
} = {}) {
|
|
34
|
+
return this.fetch({ ...options,
|
|
35
|
+
meta: {
|
|
36
|
+
fetchMore: {
|
|
37
|
+
direction: 'forward',
|
|
38
|
+
pageParam
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
fetchPreviousPage({
|
|
45
|
+
pageParam,
|
|
46
|
+
...options
|
|
47
|
+
} = {}) {
|
|
48
|
+
return this.fetch({ ...options,
|
|
49
|
+
meta: {
|
|
50
|
+
fetchMore: {
|
|
51
|
+
direction: 'backward',
|
|
52
|
+
pageParam
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
createResult(query, options) {
|
|
59
|
+
var _state$data, _state$data2, _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet;
|
|
60
|
+
|
|
61
|
+
const {
|
|
62
|
+
state
|
|
63
|
+
} = query;
|
|
64
|
+
const result = super.createResult(query, options);
|
|
65
|
+
return { ...result,
|
|
66
|
+
fetchNextPage: this.fetchNextPage,
|
|
67
|
+
fetchPreviousPage: this.fetchPreviousPage,
|
|
68
|
+
hasNextPage: hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),
|
|
69
|
+
hasPreviousPage: hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),
|
|
70
|
+
isFetchingNextPage: state.fetchStatus === 'fetching' && ((_state$fetchMeta = state.fetchMeta) == null ? void 0 : (_state$fetchMeta$fetc = _state$fetchMeta.fetchMore) == null ? void 0 : _state$fetchMeta$fetc.direction) === 'forward',
|
|
71
|
+
isFetchingPreviousPage: state.fetchStatus === 'fetching' && ((_state$fetchMeta2 = state.fetchMeta) == null ? void 0 : (_state$fetchMeta2$fet = _state$fetchMeta2.fetchMore) == null ? void 0 : _state$fetchMeta2$fet.direction) === 'backward'
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { InfiniteQueryObserver };
|
|
78
|
+
//# sourceMappingURL=infiniteQueryObserver.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infiniteQueryObserver.mjs","sources":["../../src/infiniteQueryObserver.ts"],"sourcesContent":["import type {\n DefaultedInfiniteQueryObserverOptions,\n FetchNextPageOptions,\n FetchPreviousPageOptions,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryKey,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport {\n NotifyOptions,\n ObserverFetchOptions,\n QueryObserver,\n} from './queryObserver'\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior,\n} from './infiniteQueryBehavior'\nimport { Query } from './query'\n\ntype InfiniteQueryObserverListener<TData, TError> = (\n result: InfiniteQueryObserverResult<TData, TError>,\n) => void\n\nexport class InfiniteQueryObserver<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends QueryObserver<\n TQueryFnData,\n TError,\n InfiniteData<TData>,\n InfiniteData<TQueryData>,\n TQueryKey\n> {\n // Type override\n subscribe!: (\n listener?: InfiniteQueryObserverListener<TData, TError>,\n ) => () => void\n\n // Type override\n getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>\n\n // Type override\n protected fetch!: (\n fetchOptions: ObserverFetchOptions,\n ) => Promise<InfiniteQueryObserverResult<TData, TError>>\n\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n client: QueryClient,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super(client, options)\n }\n\n protected bindMethods(): void {\n super.bindMethods()\n this.fetchNextPage = this.fetchNextPage.bind(this)\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this)\n }\n\n setOptions(\n options?: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior(),\n },\n notifyOptions,\n )\n }\n\n getOptimisticResult(\n options: DefaultedInfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n options.behavior = infiniteQueryBehavior()\n return super.getOptimisticResult(options) as InfiniteQueryObserverResult<\n TData,\n TError\n >\n }\n\n fetchNextPage({ pageParam, ...options }: FetchNextPageOptions = {}): Promise<\n InfiniteQueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'forward', pageParam },\n },\n })\n }\n\n fetchPreviousPage({\n pageParam,\n ...options\n }: FetchPreviousPageOptions = {}): Promise<\n InfiniteQueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: 'backward', pageParam },\n },\n })\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,\n options: InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): InfiniteQueryObserverResult<TData, TError> {\n const { state } = query\n const result = super.createResult(query, options)\n return {\n ...result,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data?.pages),\n hasPreviousPage: hasPreviousPage(options, state.data?.pages),\n isFetchingNextPage:\n state.fetchStatus === 'fetching' &&\n state.fetchMeta?.fetchMore?.direction === 'forward',\n isFetchingPreviousPage:\n state.fetchStatus === 'fetching' &&\n state.fetchMeta?.fetchMore?.direction === 'backward',\n }\n }\n}\n"],"names":["InfiniteQueryObserver","QueryObserver","constructor","client","options","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","infiniteQueryBehavior","getOptimisticResult","pageParam","fetch","meta","fetchMore","direction","createResult","query","state","result","hasNextPage","data","pages","hasPreviousPage","isFetchingNextPage","fetchStatus","fetchMeta","isFetchingPreviousPage"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sources":["../../src/logger.ts"],"sourcesContent":["export interface Logger {\n log: LogFunction\n warn: LogFunction\n error: LogFunction\n}\n\ntype LogFunction = (...args: any[]) => void\n\nexport const defaultLogger: Logger = console\n"],"names":["defaultLogger","console"],"mappings":";;;;AAQO,MAAMA,aAAqB,GAAGC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.mjs","sources":["../../src/logger.ts"],"sourcesContent":["export interface Logger {\n log: LogFunction\n warn: LogFunction\n error: LogFunction\n}\n\ntype LogFunction = (...args: any[]) => void\n\nexport const defaultLogger: Logger = console\n"],"names":["defaultLogger","console"],"mappings":"AAQO,MAAMA,aAAqB,GAAGC;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* See https://github.com/tannerlinsley/react-query/issues/795
|
|
7
|
+
* and https://github.com/tannerlinsley/react-query/pull/3246/#discussion_r795105707
|
|
8
|
+
*/
|
|
9
|
+
const defaultLogger = {
|
|
10
|
+
log: console.log,
|
|
11
|
+
warn: console.warn,
|
|
12
|
+
error: console.warn
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
exports.defaultLogger = defaultLogger;
|
|
16
|
+
//# sourceMappingURL=logger.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.native.js","sources":["../../src/logger.native.ts"],"sourcesContent":["import type { Logger } from './logger'\n\n/**\n * See https://github.com/tannerlinsley/react-query/issues/795\n * and https://github.com/tannerlinsley/react-query/pull/3246/#discussion_r795105707\n */\nexport const defaultLogger: Logger = {\n log: console.log,\n warn: console.warn,\n error: console.warn,\n}\n"],"names":["defaultLogger","log","console","warn","error"],"mappings":";;;;AAEA;AACA;AACA;AACA;AACO,MAAMA,aAAqB,GAAG;EACnCC,GAAG,EAAEC,OAAO,CAACD,GADsB;EAEnCE,IAAI,EAAED,OAAO,CAACC,IAFqB;EAGnCC,KAAK,EAAEF,OAAO,CAACC,IAAAA;AAHoB;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* See https://github.com/tannerlinsley/react-query/issues/795
|
|
3
|
+
* and https://github.com/tannerlinsley/react-query/pull/3246/#discussion_r795105707
|
|
4
|
+
*/
|
|
5
|
+
const defaultLogger = {
|
|
6
|
+
log: console.log,
|
|
7
|
+
warn: console.warn,
|
|
8
|
+
error: console.warn
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { defaultLogger };
|
|
12
|
+
//# sourceMappingURL=logger.native.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.native.mjs","sources":["../../src/logger.native.ts"],"sourcesContent":["import type { Logger } from './logger'\n\n/**\n * See https://github.com/tannerlinsley/react-query/issues/795\n * and https://github.com/tannerlinsley/react-query/pull/3246/#discussion_r795105707\n */\nexport const defaultLogger: Logger = {\n log: console.log,\n warn: console.warn,\n error: console.warn,\n}\n"],"names":["defaultLogger","log","console","warn","error"],"mappings":"AAEA;AACA;AACA;AACA;AACO,MAAMA,aAAqB,GAAG;EACnCC,GAAG,EAAEC,OAAO,CAACD,GADsB;EAEnCE,IAAI,EAAED,OAAO,CAACC,IAFqB;EAGnCC,KAAK,EAAEF,OAAO,CAACC,IAAAA;AAHoB;;;;"}
|