@tanstack/query-core 4.0.10 → 4.0.11-beta.4

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 (100) hide show
  1. package/build/{types/packages/query-core/src → lib}/focusManager.d.ts +0 -0
  2. package/build/{types/packages/query-core/src → lib}/hydration.d.ts +0 -0
  3. package/build/{types/packages/query-core/src → lib}/index.d.ts +2 -2
  4. package/build/lib/index.js +3115 -0
  5. package/build/lib/index.js.map +1 -0
  6. package/build/{esm/index.js → lib/index.mjs} +22 -7
  7. package/build/lib/index.mjs.map +1 -0
  8. package/build/{types/packages/query-core/src → lib}/infiniteQueryBehavior.d.ts +0 -0
  9. package/build/{types/packages/query-core/src → lib}/infiniteQueryObserver.d.ts +0 -0
  10. package/build/{types/packages/query-core/src → lib}/logger.d.ts +0 -0
  11. package/build/{types/packages/query-core/src → lib}/logger.native.d.ts +0 -0
  12. package/build/{types/packages/query-core/src → lib}/mutation.d.ts +0 -0
  13. package/build/{types/packages/query-core/src → lib}/mutationCache.d.ts +6 -1
  14. package/build/{types/packages/query-core/src → lib}/mutationObserver.d.ts +0 -0
  15. package/build/{types/packages/query-core/src → lib}/notifyManager.d.ts +0 -0
  16. package/build/{types/packages/query-core/src → lib}/onlineManager.d.ts +0 -0
  17. package/build/{types/packages/query-core/src → lib}/queriesObserver.d.ts +0 -0
  18. package/build/{types/packages/query-core/src → lib}/query.d.ts +0 -0
  19. package/build/{types/packages/query-core/src → lib}/queryCache.d.ts +6 -1
  20. package/build/{types/packages/query-core/src → lib}/queryClient.d.ts +0 -0
  21. package/build/{types/packages/query-core/src → lib}/queryObserver.d.ts +0 -0
  22. package/build/{types/packages/query-core/src → lib}/removable.d.ts +0 -0
  23. package/build/{types/packages/query-core/src → lib}/retryer.d.ts +0 -0
  24. package/build/{types/packages/query-core/src → lib}/subscribable.d.ts +0 -0
  25. package/build/{types/packages/query-core/src → lib}/types.d.ts +10 -8
  26. package/build/{types/packages/query-core/src → lib}/utils.d.ts +0 -0
  27. package/build/umd/index.development.js +21 -6
  28. package/build/umd/index.development.js.map +1 -1
  29. package/build/umd/index.production.js +1 -1
  30. package/build/umd/index.production.js.map +1 -1
  31. package/package.json +16 -8
  32. package/src/index.ts +2 -2
  33. package/src/mutationCache.ts +7 -0
  34. package/src/mutationObserver.ts +9 -0
  35. package/src/queryCache.ts +7 -0
  36. package/src/queryClient.ts +10 -14
  37. package/src/queryObserver.ts +8 -0
  38. package/src/tests/queryClient.test.tsx +33 -0
  39. package/src/tests/queryObserver.test.tsx +19 -0
  40. package/src/types.ts +15 -9
  41. package/src/utils.ts +2 -0
  42. package/build/cjs/focusManager.js +0 -101
  43. package/build/cjs/focusManager.js.map +0 -1
  44. package/build/cjs/hydration.js +0 -112
  45. package/build/cjs/hydration.js.map +0 -1
  46. package/build/cjs/index.js +0 -51
  47. package/build/cjs/index.js.map +0 -1
  48. package/build/cjs/infiniteQueryBehavior.js +0 -160
  49. package/build/cjs/infiniteQueryBehavior.js.map +0 -1
  50. package/build/cjs/infiniteQueryObserver.js +0 -92
  51. package/build/cjs/infiniteQueryObserver.js.map +0 -1
  52. package/build/cjs/logger.js +0 -18
  53. package/build/cjs/logger.js.map +0 -1
  54. package/build/cjs/mutation.js +0 -258
  55. package/build/cjs/mutation.js.map +0 -1
  56. package/build/cjs/mutationCache.js +0 -99
  57. package/build/cjs/mutationCache.js.map +0 -1
  58. package/build/cjs/mutationObserver.js +0 -130
  59. package/build/cjs/mutationObserver.js.map +0 -1
  60. package/build/cjs/notifyManager.js +0 -114
  61. package/build/cjs/notifyManager.js.map +0 -1
  62. package/build/cjs/onlineManager.js +0 -100
  63. package/build/cjs/onlineManager.js.map +0 -1
  64. package/build/cjs/queriesObserver.js +0 -170
  65. package/build/cjs/queriesObserver.js.map +0 -1
  66. package/build/cjs/query.js +0 -474
  67. package/build/cjs/query.js.map +0 -1
  68. package/build/cjs/queryCache.js +0 -140
  69. package/build/cjs/queryCache.js.map +0 -1
  70. package/build/cjs/queryClient.js +0 -357
  71. package/build/cjs/queryClient.js.map +0 -1
  72. package/build/cjs/queryObserver.js +0 -521
  73. package/build/cjs/queryObserver.js.map +0 -1
  74. package/build/cjs/removable.js +0 -47
  75. package/build/cjs/removable.js.map +0 -1
  76. package/build/cjs/retryer.js +0 -177
  77. package/build/cjs/retryer.js.map +0 -1
  78. package/build/cjs/subscribable.js +0 -43
  79. package/build/cjs/subscribable.js.map +0 -1
  80. package/build/cjs/utils.js +0 -356
  81. package/build/cjs/utils.js.map +0 -1
  82. package/build/esm/index.js.map +0 -1
  83. package/build/stats-html.html +0 -2689
  84. package/build/stats.json +0 -805
  85. package/build/types/packages/query-core/src/tests/focusManager.test.d.ts +0 -1
  86. package/build/types/packages/query-core/src/tests/hydration.test.d.ts +0 -1
  87. package/build/types/packages/query-core/src/tests/infiniteQueryBehavior.test.d.ts +0 -1
  88. package/build/types/packages/query-core/src/tests/infiniteQueryObserver.test.d.ts +0 -1
  89. package/build/types/packages/query-core/src/tests/mutationCache.test.d.ts +0 -1
  90. package/build/types/packages/query-core/src/tests/mutationObserver.test.d.ts +0 -1
  91. package/build/types/packages/query-core/src/tests/mutations.test.d.ts +0 -1
  92. package/build/types/packages/query-core/src/tests/notifyManager.test.d.ts +0 -1
  93. package/build/types/packages/query-core/src/tests/onlineManager.test.d.ts +0 -1
  94. package/build/types/packages/query-core/src/tests/queriesObserver.test.d.ts +0 -1
  95. package/build/types/packages/query-core/src/tests/query.test.d.ts +0 -1
  96. package/build/types/packages/query-core/src/tests/queryCache.test.d.ts +0 -1
  97. package/build/types/packages/query-core/src/tests/queryClient.test.d.ts +0 -1
  98. package/build/types/packages/query-core/src/tests/queryObserver.test.d.ts +0 -1
  99. package/build/types/packages/query-core/src/tests/utils.test.d.ts +0 -1
  100. package/build/types/tests/utils.d.ts +0 -24
@@ -1,160 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- function infiniteQueryBehavior() {
16
- return {
17
- onFetch: context => {
18
- context.fetchFn = () => {
19
- var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;
20
-
21
- const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;
22
- const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;
23
- const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;
24
- const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';
25
- const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';
26
- const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];
27
- const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];
28
- let newPageParams = oldPageParams;
29
- let cancelled = false;
30
-
31
- const addSignalProperty = object => {
32
- Object.defineProperty(object, 'signal', {
33
- enumerable: true,
34
- get: () => {
35
- var _context$signal;
36
-
37
- if ((_context$signal = context.signal) != null && _context$signal.aborted) {
38
- cancelled = true;
39
- } else {
40
- var _context$signal2;
41
-
42
- (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {
43
- cancelled = true;
44
- });
45
- }
46
-
47
- return context.signal;
48
- }
49
- });
50
- }; // Get query function
51
-
52
-
53
- const queryFn = context.options.queryFn || (() => Promise.reject('Missing queryFn'));
54
-
55
- const buildNewPages = (pages, param, page, previous) => {
56
- newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];
57
- return previous ? [page, ...pages] : [...pages, page];
58
- }; // Create function to fetch a page
59
-
60
-
61
- const fetchPage = (pages, manual, param, previous) => {
62
- if (cancelled) {
63
- return Promise.reject('Cancelled');
64
- }
65
-
66
- if (typeof param === 'undefined' && !manual && pages.length) {
67
- return Promise.resolve(pages);
68
- }
69
-
70
- const queryFnContext = {
71
- queryKey: context.queryKey,
72
- pageParam: param,
73
- meta: context.meta
74
- };
75
- addSignalProperty(queryFnContext);
76
- const queryFnResult = queryFn(queryFnContext);
77
- const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));
78
- return promise;
79
- };
80
-
81
- let promise; // Fetch first page?
82
-
83
- if (!oldPages.length) {
84
- promise = fetchPage([]);
85
- } // Fetch next page?
86
- else if (isFetchingNextPage) {
87
- const manual = typeof pageParam !== 'undefined';
88
- const param = manual ? pageParam : getNextPageParam(context.options, oldPages);
89
- promise = fetchPage(oldPages, manual, param);
90
- } // Fetch previous page?
91
- else if (isFetchingPreviousPage) {
92
- const manual = typeof pageParam !== 'undefined';
93
- const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);
94
- promise = fetchPage(oldPages, manual, param, true);
95
- } // Refetch pages
96
- else {
97
- newPageParams = [];
98
- const manual = typeof context.options.getNextPageParam === 'undefined';
99
- const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page
100
-
101
- promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages
102
-
103
- for (let i = 1; i < oldPages.length; i++) {
104
- promise = promise.then(pages => {
105
- const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;
106
-
107
- if (shouldFetchNextPage) {
108
- const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);
109
- return fetchPage(pages, manual, param);
110
- }
111
-
112
- return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));
113
- });
114
- }
115
- }
116
-
117
- const finalPromise = promise.then(pages => ({
118
- pages,
119
- pageParams: newPageParams
120
- }));
121
- return finalPromise;
122
- };
123
- }
124
- };
125
- }
126
- function getNextPageParam(options, pages) {
127
- return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);
128
- }
129
- function getPreviousPageParam(options, pages) {
130
- return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);
131
- }
132
- /**
133
- * Checks if there is a next page.
134
- * Returns `undefined` if it cannot be determined.
135
- */
136
-
137
- function hasNextPage(options, pages) {
138
- if (options.getNextPageParam && Array.isArray(pages)) {
139
- const nextPageParam = getNextPageParam(options, pages);
140
- return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;
141
- }
142
- }
143
- /**
144
- * Checks if there is a previous page.
145
- * Returns `undefined` if it cannot be determined.
146
- */
147
-
148
- function hasPreviousPage(options, pages) {
149
- if (options.getPreviousPageParam && Array.isArray(pages)) {
150
- const previousPageParam = getPreviousPageParam(options, pages);
151
- return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;
152
- }
153
- }
154
-
155
- exports.getNextPageParam = getNextPageParam;
156
- exports.getPreviousPageParam = getPreviousPageParam;
157
- exports.hasNextPage = hasNextPage;
158
- exports.hasPreviousPage = hasPreviousPage;
159
- exports.infiniteQueryBehavior = infiniteQueryBehavior;
160
- //# 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 || (() => 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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"}
@@ -1,92 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var queryObserver = require('./queryObserver.js');
16
- var infiniteQueryBehavior = require('./infiniteQueryBehavior.js');
17
-
18
- class InfiniteQueryObserver extends queryObserver.QueryObserver {
19
- // Type override
20
- // Type override
21
- // Type override
22
- // eslint-disable-next-line @typescript-eslint/no-useless-constructor
23
- constructor(client, options) {
24
- super(client, options);
25
- }
26
-
27
- bindMethods() {
28
- super.bindMethods();
29
- this.fetchNextPage = this.fetchNextPage.bind(this);
30
- this.fetchPreviousPage = this.fetchPreviousPage.bind(this);
31
- }
32
-
33
- setOptions(options, notifyOptions) {
34
- super.setOptions({ ...options,
35
- behavior: infiniteQueryBehavior.infiniteQueryBehavior()
36
- }, notifyOptions);
37
- }
38
-
39
- getOptimisticResult(options) {
40
- options.behavior = infiniteQueryBehavior.infiniteQueryBehavior();
41
- return super.getOptimisticResult(options);
42
- }
43
-
44
- fetchNextPage({
45
- pageParam,
46
- ...options
47
- } = {}) {
48
- return this.fetch({ ...options,
49
- meta: {
50
- fetchMore: {
51
- direction: 'forward',
52
- pageParam
53
- }
54
- }
55
- });
56
- }
57
-
58
- fetchPreviousPage({
59
- pageParam,
60
- ...options
61
- } = {}) {
62
- return this.fetch({ ...options,
63
- meta: {
64
- fetchMore: {
65
- direction: 'backward',
66
- pageParam
67
- }
68
- }
69
- });
70
- }
71
-
72
- createResult(query, options) {
73
- var _state$data, _state$data2, _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet;
74
-
75
- const {
76
- state
77
- } = query;
78
- const result = super.createResult(query, options);
79
- return { ...result,
80
- fetchNextPage: this.fetchNextPage,
81
- fetchPreviousPage: this.fetchPreviousPage,
82
- hasNextPage: infiniteQueryBehavior.hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),
83
- hasPreviousPage: infiniteQueryBehavior.hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),
84
- 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',
85
- 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'
86
- };
87
- }
88
-
89
- }
90
-
91
- exports.InfiniteQueryObserver = InfiniteQueryObserver;
92
- //# sourceMappingURL=infiniteQueryObserver.js.map
@@ -1 +0,0 @@
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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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- const defaultLogger = console;
16
-
17
- exports.defaultLogger = defaultLogger;
18
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
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;;;;"}
@@ -1,258 +0,0 @@
1
- /**
2
- * query-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var logger = require('./logger.js');
16
- var notifyManager = require('./notifyManager.js');
17
- var removable = require('./removable.js');
18
- var retryer = require('./retryer.js');
19
-
20
- // CLASS
21
- class Mutation extends removable.Removable {
22
- constructor(config) {
23
- super();
24
- this.options = { ...config.defaultOptions,
25
- ...config.options
26
- };
27
- this.mutationId = config.mutationId;
28
- this.mutationCache = config.mutationCache;
29
- this.logger = config.logger || logger.defaultLogger;
30
- this.observers = [];
31
- this.state = config.state || getDefaultState();
32
- this.meta = config.meta;
33
- this.updateCacheTime(this.options.cacheTime);
34
- this.scheduleGc();
35
- }
36
-
37
- setState(state) {
38
- this.dispatch({
39
- type: 'setState',
40
- state
41
- });
42
- }
43
-
44
- addObserver(observer) {
45
- if (this.observers.indexOf(observer) === -1) {
46
- this.observers.push(observer); // Stop the mutation from being garbage collected
47
-
48
- this.clearGcTimeout();
49
- this.mutationCache.notify({
50
- type: 'observerAdded',
51
- mutation: this,
52
- observer
53
- });
54
- }
55
- }
56
-
57
- removeObserver(observer) {
58
- this.observers = this.observers.filter(x => x !== observer);
59
- this.scheduleGc();
60
- this.mutationCache.notify({
61
- type: 'observerRemoved',
62
- mutation: this,
63
- observer
64
- });
65
- }
66
-
67
- optionalRemove() {
68
- if (!this.observers.length) {
69
- if (this.state.status === 'loading') {
70
- this.scheduleGc();
71
- } else {
72
- this.mutationCache.remove(this);
73
- }
74
- }
75
- }
76
-
77
- continue() {
78
- if (this.retryer) {
79
- this.retryer.continue();
80
- return this.retryer.promise;
81
- }
82
-
83
- return this.execute();
84
- }
85
-
86
- async execute() {
87
- const executeMutation = () => {
88
- var _this$options$retry;
89
-
90
- this.retryer = retryer.createRetryer({
91
- fn: () => {
92
- if (!this.options.mutationFn) {
93
- return Promise.reject('No mutationFn found');
94
- }
95
-
96
- return this.options.mutationFn(this.state.variables);
97
- },
98
- onFail: () => {
99
- this.dispatch({
100
- type: 'failed'
101
- });
102
- },
103
- onPause: () => {
104
- this.dispatch({
105
- type: 'pause'
106
- });
107
- },
108
- onContinue: () => {
109
- this.dispatch({
110
- type: 'continue'
111
- });
112
- },
113
- retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,
114
- retryDelay: this.options.retryDelay,
115
- networkMode: this.options.networkMode
116
- });
117
- return this.retryer.promise;
118
- };
119
-
120
- const restored = this.state.status === 'loading';
121
-
122
- try {
123
- var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$options$onSettl, _this$options3;
124
-
125
- if (!restored) {
126
- var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;
127
-
128
- this.dispatch({
129
- type: 'loading',
130
- variables: this.options.variables
131
- }); // Notify cache callback
132
-
133
- (_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this);
134
- const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));
135
-
136
- if (context !== this.state.context) {
137
- this.dispatch({
138
- type: 'loading',
139
- context,
140
- variables: this.state.variables
141
- });
142
- }
143
- }
144
-
145
- const data = await executeMutation(); // Notify cache callback
146
-
147
- (_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this);
148
- await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context));
149
- await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));
150
- this.dispatch({
151
- type: 'success',
152
- data
153
- });
154
- return data;
155
- } catch (error) {
156
- try {
157
- var _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onError, _this$options4, _this$options$onSettl2, _this$options5;
158
-
159
- // Notify cache callback
160
- (_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, error, this.state.variables, this.state.context, this);
161
-
162
- if (process.env.NODE_ENV !== 'production') {
163
- this.logger.error(error);
164
- }
165
-
166
- await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context));
167
- await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));
168
- throw error;
169
- } finally {
170
- this.dispatch({
171
- type: 'error',
172
- error: error
173
- });
174
- }
175
- }
176
- }
177
-
178
- dispatch(action) {
179
- const reducer = state => {
180
- switch (action.type) {
181
- case 'failed':
182
- return { ...state,
183
- failureCount: state.failureCount + 1
184
- };
185
-
186
- case 'pause':
187
- return { ...state,
188
- isPaused: true
189
- };
190
-
191
- case 'continue':
192
- return { ...state,
193
- isPaused: false
194
- };
195
-
196
- case 'loading':
197
- return { ...state,
198
- context: action.context,
199
- data: undefined,
200
- error: null,
201
- isPaused: !retryer.canFetch(this.options.networkMode),
202
- status: 'loading',
203
- variables: action.variables
204
- };
205
-
206
- case 'success':
207
- return { ...state,
208
- data: action.data,
209
- error: null,
210
- status: 'success',
211
- isPaused: false
212
- };
213
-
214
- case 'error':
215
- return { ...state,
216
- data: undefined,
217
- error: action.error,
218
- failureCount: state.failureCount + 1,
219
- isPaused: false,
220
- status: 'error'
221
- };
222
-
223
- case 'setState':
224
- return { ...state,
225
- ...action.state
226
- };
227
- }
228
- };
229
-
230
- this.state = reducer(this.state);
231
- notifyManager.notifyManager.batch(() => {
232
- this.observers.forEach(observer => {
233
- observer.onMutationUpdate(action);
234
- });
235
- this.mutationCache.notify({
236
- mutation: this,
237
- type: 'updated',
238
- action
239
- });
240
- });
241
- }
242
-
243
- }
244
- function getDefaultState() {
245
- return {
246
- context: undefined,
247
- data: undefined,
248
- error: null,
249
- failureCount: 0,
250
- isPaused: false,
251
- status: 'idle',
252
- variables: undefined
253
- };
254
- }
255
-
256
- exports.Mutation = Mutation;
257
- exports.getDefaultState = getDefaultState;
258
- //# sourceMappingURL=mutation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutation.js","sources":["../../src/mutation.ts"],"sourcesContent":["import type { MutationOptions, MutationStatus, MutationMeta } from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport { defaultLogger, Logger } from './logger'\nimport { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { canFetch, Retryer, createRetryer } from './retryer'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TContext> {\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TContext>\n logger?: Logger\n defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>\n state?: MutationState<TData, TError, TVariables, TContext>\n meta?: MutationMeta\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> {\n context: TContext | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n}\n\ninterface FailedAction {\n type: 'failed'\n}\n\ninterface LoadingAction<TVariables, TContext> {\n type: 'loading'\n variables?: TVariables\n context?: TContext\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\ninterface SetStateAction<TData, TError, TVariables, TContext> {\n type: 'setState'\n state: MutationState<TData, TError, TVariables, TContext>\n}\n\nexport type Action<TData, TError, TVariables, TContext> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction\n | LoadingAction<TVariables, TContext>\n | PauseAction\n | SetStateAction<TData, TError, TVariables, TContext>\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = unknown,\n TVariables = void,\n TContext = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TContext>\n options: MutationOptions<TData, TError, TVariables, TContext>\n mutationId: number\n meta: MutationMeta | undefined\n\n private observers: MutationObserver<TData, TError, TVariables, TContext>[]\n private mutationCache: MutationCache\n private logger: Logger\n private retryer?: Retryer<TData>\n\n constructor(config: MutationConfig<TData, TError, TVariables, TContext>) {\n super()\n\n this.options = {\n ...config.defaultOptions,\n ...config.options,\n }\n this.mutationId = config.mutationId\n this.mutationCache = config.mutationCache\n this.logger = config.logger || defaultLogger\n this.observers = []\n this.state = config.state || getDefaultState()\n this.meta = config.meta\n\n this.updateCacheTime(this.options.cacheTime)\n this.scheduleGc()\n }\n\n setState(state: MutationState<TData, TError, TVariables, TContext>): void {\n this.dispatch({ type: 'setState', state })\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.observers = this.observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc()\n } else {\n this.mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<TData> {\n if (this.retryer) {\n this.retryer.continue()\n return this.retryer.promise\n }\n return this.execute()\n }\n\n async execute(): Promise<TData> {\n const executeMutation = () => {\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found')\n }\n return this.options.mutationFn(this.state.variables!)\n },\n onFail: () => {\n this.dispatch({ type: 'failed' })\n },\n onPause: () => {\n this.dispatch({ type: 'pause' })\n },\n onContinue: () => {\n this.dispatch({ type: 'continue' })\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n })\n\n return this.retryer.promise\n }\n\n const restored = this.state.status === 'loading'\n try {\n if (!restored) {\n this.dispatch({ type: 'loading', variables: this.options.variables! })\n // Notify cache callback\n this.mutationCache.config.onMutate?.(\n this.state.variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n const context = await this.options.onMutate?.(this.state.variables!)\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables,\n })\n }\n }\n const data = await executeMutation()\n\n // Notify cache callback\n this.mutationCache.config.onSuccess?.(\n data,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n await this.options.onSuccess?.(\n data,\n this.state.variables!,\n this.state.context!,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n this.state.variables!,\n this.state.context,\n )\n\n this.dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n this.mutationCache.config.onError?.(\n error,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n )\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error)\n }\n\n await this.options.onError?.(\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n\n await this.options.onSettled?.(\n undefined,\n error as TError,\n this.state.variables!,\n this.state.context,\n )\n throw error\n } finally {\n this.dispatch({ type: 'error', error: error as TError })\n }\n }\n }\n\n private dispatch(action: Action<TData, TError, TVariables, TContext>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TContext>,\n ): MutationState<TData, TError, TVariables, TContext> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: state.failureCount + 1,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'loading':\n return {\n ...state,\n context: action.context,\n data: undefined,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables,\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error',\n }\n case 'setState':\n return {\n ...state,\n ...action.state,\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TContext,\n>(): MutationState<TData, TError, TVariables, TContext> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n }\n}\n"],"names":["Mutation","Removable","constructor","config","options","defaultOptions","mutationId","mutationCache","logger","defaultLogger","observers","state","getDefaultState","meta","updateCacheTime","cacheTime","scheduleGc","setState","dispatch","type","addObserver","observer","indexOf","push","clearGcTimeout","notify","mutation","removeObserver","filter","x","optionalRemove","length","status","remove","continue","retryer","promise","execute","executeMutation","createRetryer","fn","mutationFn","Promise","reject","variables","onFail","onPause","onContinue","retry","retryDelay","networkMode","restored","onMutate","context","data","onSuccess","onSettled","error","onError","process","env","NODE_ENV","undefined","action","reducer","failureCount","isPaused","canFetch","notifyManager","batch","forEach","onMutationUpdate"],"mappings":"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"}