@gravity-ui/data-source 0.8.2 → 0.9.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/cjs/core/utils/withCatch.d.ts +4 -1
- package/build/cjs/core/utils/withCatch.js +2 -0
- package/build/cjs/core/utils/withCatch.js.map +1 -1
- package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js +230 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +1 -0
- package/build/cjs/react-query/impl/infinite/hooks.js +5 -1
- package/build/cjs/react-query/impl/infinite/hooks.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/types.d.ts +1 -0
- package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
- package/build/cjs/react-query/impl/plain/hooks.js +5 -1
- package/build/cjs/react-query/impl/plain/hooks.js.map +1 -1
- package/build/cjs/react-query/impl/plain/types.d.ts +1 -0
- package/build/cjs/react-query/impl/plain/types.js.map +1 -1
- package/build/cjs/react-query/types/options.d.ts +5 -0
- package/build/cjs/react-query/types/options.js.map +1 -1
- package/build/cjs/react-query/utils/warn.d.ts +1 -0
- package/build/cjs/react-query/utils/warn.js +15 -0
- package/build/cjs/react-query/utils/warn.js.map +1 -0
- package/build/cjs/react-query/utils/warnDisabledRefetch.d.ts +1 -0
- package/build/cjs/react-query/utils/warnDisabledRefetch.js +27 -0
- package/build/cjs/react-query/utils/warnDisabledRefetch.js.map +1 -0
- package/build/cjs/react-query/utils/wrapRefetch.d.ts +2 -0
- package/build/cjs/react-query/utils/wrapRefetch.js +29 -0
- package/build/cjs/react-query/utils/wrapRefetch.js.map +1 -0
- package/build/esm/core/utils/withCatch.d.ts +4 -1
- package/build/esm/core/utils/withCatch.js +2 -0
- package/build/esm/core/utils/withCatch.js.map +1 -1
- package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js +227 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +1 -0
- package/build/esm/react-query/impl/infinite/hooks.js +6 -2
- package/build/esm/react-query/impl/infinite/hooks.js.map +1 -1
- package/build/esm/react-query/impl/infinite/types.d.ts +1 -0
- package/build/esm/react-query/impl/infinite/types.js.map +1 -1
- package/build/esm/react-query/impl/plain/hooks.js +6 -2
- package/build/esm/react-query/impl/plain/hooks.js.map +1 -1
- package/build/esm/react-query/impl/plain/types.d.ts +1 -0
- package/build/esm/react-query/impl/plain/types.js.map +1 -1
- package/build/esm/react-query/types/options.d.ts +5 -0
- package/build/esm/react-query/types/options.js.map +1 -1
- package/build/esm/react-query/utils/warn.d.ts +1 -0
- package/build/esm/react-query/utils/warn.js +9 -0
- package/build/esm/react-query/utils/warn.js.map +1 -0
- package/build/esm/react-query/utils/warnDisabledRefetch.d.ts +1 -0
- package/build/esm/react-query/utils/warnDisabledRefetch.js +20 -0
- package/build/esm/react-query/utils/warnDisabledRefetch.js.map +1 -0
- package/build/esm/react-query/utils/wrapRefetch.d.ts +2 -0
- package/build/esm/react-query/utils/wrapRefetch.js +22 -0
- package/build/esm/react-query/utils/wrapRefetch.js.map +1 -0
- package/package.json +1 -1
|
@@ -23,4 +23,7 @@
|
|
|
23
23
|
* (error) => ({ error: true, message: error.message })
|
|
24
24
|
* );
|
|
25
25
|
*/
|
|
26
|
-
export declare function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(fetchFn: (...args: TArgs) => Promise<TFetchReturnType>, onCatchFn: (reason: unknown) => TCatchReturnType): (...args: TArgs) => Promise<TFetchReturnType
|
|
26
|
+
export declare function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(fetchFn: (...args: TArgs) => Promise<TFetchReturnType>, onCatchFn: (reason: unknown) => TCatchReturnType): (...args: TArgs) => Promise<WithCatchMergedReturn<TFetchReturnType, TCatchReturnType>>;
|
|
27
|
+
/** If success is array-typed, an inferred `() => []` handler (`never[]`) is merged into the success type. */
|
|
28
|
+
type WithCatchMergedReturn<TSuccess, TCatch> = [TCatch] extends [never] ? TSuccess : [TSuccess] extends [readonly unknown[]] ? TCatch extends readonly never[] ? TSuccess : TSuccess | TCatch : TSuccess | TCatch;
|
|
29
|
+
export {};
|
|
@@ -34,4 +34,6 @@ function withCatch(fetchFn, onCatchFn) {
|
|
|
34
34
|
return fetchFn.apply(void 0, arguments)["catch"](onCatchFn);
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
+
|
|
38
|
+
/** If success is array-typed, an inferred `() => []` handler (`never[]`) is merged into the success type. */
|
|
37
39
|
// #sourceMappingURL=withCatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["withCatch","fetchFn","onCatchFn","apply","arguments"],"sources":["withCatch.ts"],"sourcesContent":["/**\n * Creates a wrapper around a function that safely handles errors using a provided error handler.\n *\n * This utility function enhances a Promise-returning function by adding standardized error handling.\n * It catches any errors thrown by the original function and processes them through the provided\n * error handler, allowing for consistent error management across the application.\n *\n * @template TArgs - The argument types of the original function\n * @template TFetchReturnType - The return type of the original function's Promise\n * @template TCatchReturnType - The return type of the error handler function\n *\n * @param fetchFn - The original function that returns a Promise\n * @param onCatchFn - The error handler function that processes any caught errors\n *\n * @returns A new function with the same signature as the original function,\n * but with error handling applied. The returned function will resolve to either\n * the successful result of the original function or the result of the error handler.\n *\n * @example\n * // Basic usage with a string parameter\n * const fetchUser = withCatch(\n * someFetchFunction,\n * (error) => ({ error: true, message: error.message })\n * );\n */\nexport function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(\n fetchFn: (...args: TArgs) => Promise<TFetchReturnType>,\n onCatchFn: (reason: unknown) => TCatchReturnType,\n): (...args: TArgs) => Promise<TFetchReturnType
|
|
1
|
+
{"version":3,"names":["withCatch","fetchFn","onCatchFn","apply","arguments"],"sources":["withCatch.ts"],"sourcesContent":["/**\n * Creates a wrapper around a function that safely handles errors using a provided error handler.\n *\n * This utility function enhances a Promise-returning function by adding standardized error handling.\n * It catches any errors thrown by the original function and processes them through the provided\n * error handler, allowing for consistent error management across the application.\n *\n * @template TArgs - The argument types of the original function\n * @template TFetchReturnType - The return type of the original function's Promise\n * @template TCatchReturnType - The return type of the error handler function\n *\n * @param fetchFn - The original function that returns a Promise\n * @param onCatchFn - The error handler function that processes any caught errors\n *\n * @returns A new function with the same signature as the original function,\n * but with error handling applied. The returned function will resolve to either\n * the successful result of the original function or the result of the error handler.\n *\n * @example\n * // Basic usage with a string parameter\n * const fetchUser = withCatch(\n * someFetchFunction,\n * (error) => ({ error: true, message: error.message })\n * );\n */\nexport function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(\n fetchFn: (...args: TArgs) => Promise<TFetchReturnType>,\n onCatchFn: (reason: unknown) => TCatchReturnType,\n): (...args: TArgs) => Promise<WithCatchMergedReturn<TFetchReturnType, TCatchReturnType>> {\n return (...args) => {\n return fetchFn(...args).catch(onCatchFn) as Promise<\n WithCatchMergedReturn<TFetchReturnType, TCatchReturnType>\n >;\n };\n}\n\n/** If success is array-typed, an inferred `() => []` handler (`never[]`) is merged into the success type. */\ntype WithCatchMergedReturn<TSuccess, TCatch> = [TCatch] extends [never]\n ? TSuccess\n : [TSuccess] extends [readonly unknown[]]\n ? TCatch extends readonly never[]\n ? TSuccess\n : TSuccess | TCatch\n : TSuccess | TCatch;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CACrBC,OAAsD,EACtDC,SAAgD,EACsC;EACtF,OAAO,YAAa;IAChB,OAAOD,OAAO,CAAAE,KAAA,SAAAC,SAAQ,CAAC,SAAM,CAACF,SAAS,CAAC;EAG5C,CAAC;AACL;;AAEA","ignoreList":[]}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
4
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
5
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
6
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
7
|
+
var _react = require("@testing-library/react");
|
|
8
|
+
var _core = require("../../../core");
|
|
9
|
+
var _warnDisabledRefetch = require("../../utils/warnDisabledRefetch");
|
|
10
|
+
var _useQueryContext = require("../useQueryContext");
|
|
11
|
+
var _useQueryData = require("../useQueryData");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
jest.mock('@tanstack/react-query', function () {
|
|
14
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, jest.requireActual('@tanstack/react-query')), {}, {
|
|
15
|
+
useQuery: jest.fn(),
|
|
16
|
+
useInfiniteQuery: jest.fn()
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
jest.mock('../useQueryContext');
|
|
20
|
+
jest.mock('../../utils/warnDisabledRefetch');
|
|
21
|
+
var mockUseQuery = _reactQuery.useQuery;
|
|
22
|
+
var mockUseInfiniteQuery = _reactQuery.useInfiniteQuery;
|
|
23
|
+
var mockWarnDisabledRefetch = _warnDisabledRefetch.warnDisabledRefetch;
|
|
24
|
+
describe('useQueryData refetch behavior', function () {
|
|
25
|
+
var mockQueryClient = new _reactQuery.QueryClient();
|
|
26
|
+
var mockContext = {
|
|
27
|
+
queryClient: mockQueryClient
|
|
28
|
+
};
|
|
29
|
+
beforeEach(function () {
|
|
30
|
+
jest.clearAllMocks();
|
|
31
|
+
_useQueryContext.useQueryContext.mockReturnValue(mockContext);
|
|
32
|
+
});
|
|
33
|
+
var createMockQueryResult = function createMockQueryResult() {
|
|
34
|
+
var refetch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : jest.fn();
|
|
35
|
+
return {
|
|
36
|
+
data: 'test-data',
|
|
37
|
+
error: null,
|
|
38
|
+
status: 'success',
|
|
39
|
+
fetchStatus: 'idle',
|
|
40
|
+
isLoading: false,
|
|
41
|
+
isError: false,
|
|
42
|
+
isSuccess: true,
|
|
43
|
+
isPending: false,
|
|
44
|
+
refetch: refetch,
|
|
45
|
+
dataUpdatedAt: Date.now(),
|
|
46
|
+
errorUpdatedAt: 0,
|
|
47
|
+
failureCount: 0,
|
|
48
|
+
failureReason: null,
|
|
49
|
+
isFetched: true,
|
|
50
|
+
isFetchedAfterMount: true,
|
|
51
|
+
isFetching: false,
|
|
52
|
+
isInitialLoading: false,
|
|
53
|
+
isLoadingError: false,
|
|
54
|
+
isPaused: false,
|
|
55
|
+
isPlaceholderData: false,
|
|
56
|
+
isPreviousData: false,
|
|
57
|
+
isRefetchError: false,
|
|
58
|
+
isRefetching: false,
|
|
59
|
+
isStale: false,
|
|
60
|
+
promise: Promise.resolve('test-data')
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
var createMockInfiniteResult = function createMockInfiniteResult() {
|
|
64
|
+
var refetch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : jest.fn();
|
|
65
|
+
return {
|
|
66
|
+
data: {
|
|
67
|
+
pages: [['item1'], ['item2']],
|
|
68
|
+
pageParams: [undefined, 'next-page']
|
|
69
|
+
},
|
|
70
|
+
error: null,
|
|
71
|
+
status: 'success',
|
|
72
|
+
fetchStatus: 'idle',
|
|
73
|
+
isLoading: false,
|
|
74
|
+
isError: false,
|
|
75
|
+
isSuccess: true,
|
|
76
|
+
isPending: false,
|
|
77
|
+
refetch: refetch,
|
|
78
|
+
hasNextPage: false,
|
|
79
|
+
hasPreviousPage: false,
|
|
80
|
+
fetchNextPage: jest.fn(),
|
|
81
|
+
fetchPreviousPage: jest.fn(),
|
|
82
|
+
isFetchingNextPage: false,
|
|
83
|
+
isFetchingPreviousPage: false,
|
|
84
|
+
dataUpdatedAt: Date.now(),
|
|
85
|
+
errorUpdatedAt: 0,
|
|
86
|
+
failureCount: 0,
|
|
87
|
+
failureReason: null,
|
|
88
|
+
isFetched: true,
|
|
89
|
+
isFetchedAfterMount: true,
|
|
90
|
+
isFetching: false,
|
|
91
|
+
isInitialLoading: false,
|
|
92
|
+
isLoadingError: false,
|
|
93
|
+
isPaused: false,
|
|
94
|
+
isPlaceholderData: false,
|
|
95
|
+
isPreviousData: false,
|
|
96
|
+
isRefetchError: false,
|
|
97
|
+
isRefetching: false,
|
|
98
|
+
isStale: false,
|
|
99
|
+
promise: Promise.resolve({
|
|
100
|
+
pages: [['item1'], ['item2']],
|
|
101
|
+
pageParams: [undefined, 'next-page']
|
|
102
|
+
})
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
describe('plain data source', function () {
|
|
106
|
+
var plainDataSource = {
|
|
107
|
+
type: 'plain',
|
|
108
|
+
name: 'test-plain',
|
|
109
|
+
fetch: jest.fn().mockResolvedValue({
|
|
110
|
+
data: 'test-data'
|
|
111
|
+
})
|
|
112
|
+
};
|
|
113
|
+
it('should wrap refetch when no enabled option', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
114
|
+
var originalRefetch, _renderHook, result;
|
|
115
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
116
|
+
while (1) switch (_context.prev = _context.next) {
|
|
117
|
+
case 0:
|
|
118
|
+
originalRefetch = jest.fn().mockResolvedValue({
|
|
119
|
+
data: 'test',
|
|
120
|
+
status: 'success'
|
|
121
|
+
});
|
|
122
|
+
mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch));
|
|
123
|
+
_renderHook = (0, _react.renderHook)(function () {
|
|
124
|
+
return (0, _useQueryData.useQueryData)(plainDataSource, {
|
|
125
|
+
id: 1
|
|
126
|
+
});
|
|
127
|
+
}), result = _renderHook.result;
|
|
128
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
129
|
+
expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);
|
|
130
|
+
_context.next = 7;
|
|
131
|
+
return result.current.refetch();
|
|
132
|
+
case 7:
|
|
133
|
+
expect(originalRefetch).toHaveBeenCalledTimes(1);
|
|
134
|
+
case 8:
|
|
135
|
+
case "end":
|
|
136
|
+
return _context.stop();
|
|
137
|
+
}
|
|
138
|
+
}, _callee);
|
|
139
|
+
})));
|
|
140
|
+
it('should use warnDisabledRefetch when enabled: false', function () {
|
|
141
|
+
var originalRefetch = jest.fn();
|
|
142
|
+
mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch));
|
|
143
|
+
var _renderHook2 = (0, _react.renderHook)(function () {
|
|
144
|
+
return (0, _useQueryData.useQueryData)(plainDataSource, {
|
|
145
|
+
id: 1
|
|
146
|
+
}, {
|
|
147
|
+
enabled: false
|
|
148
|
+
});
|
|
149
|
+
}),
|
|
150
|
+
result = _renderHook2.result;
|
|
151
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
152
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
153
|
+
});
|
|
154
|
+
it('should use warnDisabledRefetch when params is idle', function () {
|
|
155
|
+
var originalRefetch = jest.fn();
|
|
156
|
+
mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch));
|
|
157
|
+
var _renderHook3 = (0, _react.renderHook)(function () {
|
|
158
|
+
return (0, _useQueryData.useQueryData)(plainDataSource, _core.idle);
|
|
159
|
+
}),
|
|
160
|
+
result = _renderHook3.result;
|
|
161
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
162
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
describe('infinite data source', function () {
|
|
166
|
+
var infiniteDataSource = {
|
|
167
|
+
type: 'infinite',
|
|
168
|
+
name: 'test-infinite',
|
|
169
|
+
fetch: jest.fn().mockResolvedValue({
|
|
170
|
+
data: ['item1', 'item2']
|
|
171
|
+
}),
|
|
172
|
+
next: jest.fn()
|
|
173
|
+
};
|
|
174
|
+
it('should wrap refetch when no enabled option', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
|
|
175
|
+
var originalRefetch, _renderHook4, result;
|
|
176
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
|
|
177
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
178
|
+
case 0:
|
|
179
|
+
originalRefetch = jest.fn().mockResolvedValue({
|
|
180
|
+
data: {
|
|
181
|
+
pages: [],
|
|
182
|
+
pageParams: []
|
|
183
|
+
},
|
|
184
|
+
status: 'success'
|
|
185
|
+
});
|
|
186
|
+
mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch));
|
|
187
|
+
_renderHook4 = (0, _react.renderHook)(function () {
|
|
188
|
+
return (0, _useQueryData.useQueryData)(infiniteDataSource, {
|
|
189
|
+
id: 1
|
|
190
|
+
});
|
|
191
|
+
}), result = _renderHook4.result;
|
|
192
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
193
|
+
expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);
|
|
194
|
+
_context2.next = 7;
|
|
195
|
+
return result.current.refetch();
|
|
196
|
+
case 7:
|
|
197
|
+
expect(originalRefetch).toHaveBeenCalledTimes(1);
|
|
198
|
+
case 8:
|
|
199
|
+
case "end":
|
|
200
|
+
return _context2.stop();
|
|
201
|
+
}
|
|
202
|
+
}, _callee2);
|
|
203
|
+
})));
|
|
204
|
+
it('should use warnDisabledRefetch when enabled: false', function () {
|
|
205
|
+
var originalRefetch = jest.fn();
|
|
206
|
+
mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch));
|
|
207
|
+
var _renderHook5 = (0, _react.renderHook)(function () {
|
|
208
|
+
return (0, _useQueryData.useQueryData)(infiniteDataSource, {
|
|
209
|
+
id: 1
|
|
210
|
+
}, {
|
|
211
|
+
enabled: false
|
|
212
|
+
});
|
|
213
|
+
}),
|
|
214
|
+
result = _renderHook5.result;
|
|
215
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
216
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
217
|
+
});
|
|
218
|
+
it('should use warnDisabledRefetch when params is idle', function () {
|
|
219
|
+
var originalRefetch = jest.fn();
|
|
220
|
+
mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch));
|
|
221
|
+
var _renderHook6 = (0, _react.renderHook)(function () {
|
|
222
|
+
return (0, _useQueryData.useQueryData)(infiniteDataSource, _core.idle);
|
|
223
|
+
}),
|
|
224
|
+
result = _renderHook6.result;
|
|
225
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
226
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
// #sourceMappingURL=useQueryData.refetch.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_react","_core","_warnDisabledRefetch","_useQueryContext","_useQueryData","_interopRequireDefault","e","__esModule","default","jest","mock","_objectSpread","requireActual","useQuery","fn","useInfiniteQuery","mockUseQuery","mockUseInfiniteQuery","mockWarnDisabledRefetch","warnDisabledRefetch","describe","mockQueryClient","QueryClient","mockContext","queryClient","beforeEach","clearAllMocks","useQueryContext","mockReturnValue","createMockQueryResult","refetch","arguments","length","undefined","data","error","status","fetchStatus","isLoading","isError","isSuccess","isPending","dataUpdatedAt","Date","now","errorUpdatedAt","failureCount","failureReason","isFetched","isFetchedAfterMount","isFetching","isInitialLoading","isLoadingError","isPaused","isPlaceholderData","isPreviousData","isRefetchError","isRefetching","isStale","promise","Promise","resolve","createMockInfiniteResult","pages","pageParams","hasNextPage","hasPreviousPage","fetchNextPage","fetchPreviousPage","isFetchingNextPage","isFetchingPreviousPage","plainDataSource","type","name","fetch","mockResolvedValue","it","_asyncToGenerator","_regeneratorRuntime","mark","_callee","originalRefetch","_renderHook","result","wrap","_callee$","_context","prev","next","renderHook","useQueryData","id","expect","current","not","toBe","toHaveBeenCalledTimes","stop","_renderHook2","enabled","_renderHook3","idle","infiniteDataSource","_callee2","_renderHook4","_callee2$","_context2","_renderHook5","_renderHook6"],"sources":["useQueryData.refetch.test.ts"],"sourcesContent":["import {QueryClient, useInfiniteQuery, useQuery} from '@tanstack/react-query';\nimport {renderHook} from '@testing-library/react';\n\nimport {idle} from '../../../core';\nimport type {AnyInfiniteQueryDataSource} from '../../impl/infinite/types';\nimport type {AnyPlainQueryDataSource} from '../../impl/plain/types';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\nimport {useQueryContext} from '../useQueryContext';\nimport {useQueryData} from '../useQueryData';\n\njest.mock('@tanstack/react-query', () => ({\n ...jest.requireActual('@tanstack/react-query'),\n useQuery: jest.fn(),\n useInfiniteQuery: jest.fn(),\n}));\n\njest.mock('../useQueryContext');\njest.mock('../../utils/warnDisabledRefetch');\n\nconst mockUseQuery = useQuery as jest.MockedFunction<typeof useQuery>;\nconst mockUseInfiniteQuery = useInfiniteQuery as jest.MockedFunction<typeof useInfiniteQuery>;\nconst mockWarnDisabledRefetch = warnDisabledRefetch as jest.MockedFunction<\n typeof warnDisabledRefetch\n>;\n\ndescribe('useQueryData refetch behavior', () => {\n const mockQueryClient = new QueryClient();\n const mockContext = {queryClient: mockQueryClient};\n\n beforeEach(() => {\n jest.clearAllMocks();\n (useQueryContext as jest.Mock).mockReturnValue(mockContext);\n });\n\n const createMockQueryResult = (refetch = jest.fn()) => ({\n data: 'test-data',\n error: null,\n status: 'success' as const,\n fetchStatus: 'idle' as const,\n isLoading: false,\n isError: false,\n isSuccess: true,\n isPending: false,\n refetch,\n dataUpdatedAt: Date.now(),\n errorUpdatedAt: 0,\n failureCount: 0,\n failureReason: null,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isInitialLoading: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isRefetching: false,\n isStale: false,\n promise: Promise.resolve('test-data'),\n });\n\n const createMockInfiniteResult = (refetch = jest.fn()) => ({\n data: {pages: [['item1'], ['item2']], pageParams: [undefined, 'next-page']},\n error: null,\n status: 'success' as const,\n fetchStatus: 'idle' as const,\n isLoading: false,\n isError: false,\n isSuccess: true,\n isPending: false,\n refetch,\n hasNextPage: false,\n hasPreviousPage: false,\n fetchNextPage: jest.fn(),\n fetchPreviousPage: jest.fn(),\n isFetchingNextPage: false,\n isFetchingPreviousPage: false,\n dataUpdatedAt: Date.now(),\n errorUpdatedAt: 0,\n failureCount: 0,\n failureReason: null,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isInitialLoading: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isRefetching: false,\n isStale: false,\n promise: Promise.resolve({\n pages: [['item1'], ['item2']],\n pageParams: [undefined, 'next-page'],\n }),\n });\n\n describe('plain data source', () => {\n const plainDataSource: AnyPlainQueryDataSource = {\n type: 'plain',\n name: 'test-plain',\n fetch: jest.fn().mockResolvedValue({data: 'test-data'}),\n };\n\n it('should wrap refetch when no enabled option', async () => {\n const originalRefetch = jest.fn().mockResolvedValue({data: 'test', status: 'success'});\n mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(plainDataSource, {id: 1}));\n\n expect(result.current.refetch).not.toBe(originalRefetch);\n expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);\n\n await result.current.refetch();\n expect(originalRefetch).toHaveBeenCalledTimes(1);\n });\n\n it('should use warnDisabledRefetch when enabled: false', () => {\n const originalRefetch = jest.fn();\n mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch) as any);\n\n const {result} = renderHook(() =>\n useQueryData(plainDataSource, {id: 1}, {enabled: false}),\n );\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n\n it('should use warnDisabledRefetch when params is idle', () => {\n const originalRefetch = jest.fn();\n mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(plainDataSource, idle));\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n });\n\n describe('infinite data source', () => {\n const infiniteDataSource: AnyInfiniteQueryDataSource = {\n type: 'infinite',\n name: 'test-infinite',\n fetch: jest.fn().mockResolvedValue({data: ['item1', 'item2']}),\n next: jest.fn(),\n };\n\n it('should wrap refetch when no enabled option', async () => {\n const originalRefetch = jest.fn().mockResolvedValue({\n data: {pages: [], pageParams: []},\n status: 'success',\n });\n mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(infiniteDataSource, {id: 1}));\n\n expect(result.current.refetch).not.toBe(originalRefetch);\n expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);\n\n await result.current.refetch();\n expect(originalRefetch).toHaveBeenCalledTimes(1);\n });\n\n it('should use warnDisabledRefetch when enabled: false', () => {\n const originalRefetch = jest.fn();\n mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch) as any);\n\n const {result} = renderHook(() =>\n useQueryData(infiniteDataSource, {id: 1}, {enabled: false}),\n );\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n\n it('should use warnDisabledRefetch when params is idle', () => {\n const originalRefetch = jest.fn();\n mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(infiniteDataSource, idle));\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,8 @@ var _react = require("react");
|
|
|
10
10
|
var _reactQuery = require("@tanstack/react-query");
|
|
11
11
|
var _useRefetchInterval2 = require("../../hooks/useRefetchInterval");
|
|
12
12
|
var _normalizeStatus = require("../../utils/normalizeStatus");
|
|
13
|
+
var _warnDisabledRefetch = require("../../utils/warnDisabledRefetch");
|
|
14
|
+
var _wrapRefetch = require("../../utils/wrapRefetch");
|
|
13
15
|
var _utils = require("./utils");
|
|
14
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
17
|
var _excluded = ["queryFn", "refetchInterval"];
|
|
@@ -33,11 +35,13 @@ var useInfiniteQueryData = exports.useInfiniteQueryData = function useInfiniteQu
|
|
|
33
35
|
var _state$data$pages$fla, _state$data;
|
|
34
36
|
return (_state$data$pages$fla = (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.pages.flat(1)) !== null && _state$data$pages$fla !== void 0 ? _state$data$pages$fla : [];
|
|
35
37
|
}, [state.data]);
|
|
38
|
+
var isDisabled = composedOptions.enabled === false || composedOptions.queryFn === _reactQuery.skipToken;
|
|
36
39
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
37
40
|
status: (0, _normalizeStatus.normalizeStatus)(state.status, state.fetchStatus),
|
|
38
41
|
data: transformedData,
|
|
39
42
|
originalStatus: state.status,
|
|
40
|
-
originalData: state.data
|
|
43
|
+
originalData: state.data,
|
|
44
|
+
refetch: isDisabled ? _warnDisabledRefetch.warnDisabledRefetch : (0, _wrapRefetch.wrapRefetch)(state.refetch)
|
|
41
45
|
});
|
|
42
46
|
};
|
|
43
47
|
// #sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactQuery","_useRefetchInterval2","_normalizeStatus","_utils","_interopRequireDefault","e","__esModule","default","useInfiniteQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","useRefetchInterval","_objectSpread","useInfiniteQueryData","exports","context","dataSource","params","options","extendedOptions","composeOptions","state","useInfiniteQuery","transformedData","useMemo","_state$data$pages$fla","_state$data","data","pages","flat","status","normalizeStatus","fetchStatus","originalStatus","originalData"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useInfiniteQuery} from '@tanstack/react-query';\nimport type {InfiniteData, InfiniteQueryObserverOptions} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyInfiniteQueryDataSource, InfiniteQueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst useInfiniteQueryDataOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n composedOptions: InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n >,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = useInfiniteQueryDataOptions(extendedOptions);\n const state = useInfiniteQuery(composedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => state.data?.pages.flat(1) ?? [],\n [state.data],\n );\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n data: transformedData,\n originalStatus: state.status,\n originalData: state.data,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAcA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactQuery","_useRefetchInterval2","_normalizeStatus","_warnDisabledRefetch","_wrapRefetch","_utils","_interopRequireDefault","e","__esModule","default","useInfiniteQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","useRefetchInterval","_objectSpread","useInfiniteQueryData","exports","context","dataSource","params","options","extendedOptions","composeOptions","state","useInfiniteQuery","transformedData","useMemo","_state$data$pages$fla","_state$data","data","pages","flat","isDisabled","enabled","skipToken","status","normalizeStatus","fetchStatus","originalStatus","originalData","refetch","warnDisabledRefetch","wrapRefetch"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {skipToken, useInfiniteQuery} from '@tanstack/react-query';\nimport type {InfiniteData, InfiniteQueryObserverOptions} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\nimport {wrapRefetch} from '../../utils/wrapRefetch';\n\nimport type {AnyInfiniteQueryDataSource, InfiniteQueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst useInfiniteQueryDataOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n composedOptions: InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n >,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = useInfiniteQueryDataOptions(extendedOptions);\n const state = useInfiniteQuery(composedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => state.data?.pages.flat(1) ?? [],\n [state.data],\n );\n\n const isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n data: transformedData,\n originalStatus: state.status,\n originalData: state.data,\n refetch: isDisabled ? warnDisabledRefetch : wrapRefetch(state.refetch),\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAcA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAGA,IAAAM,MAAA,GAAAN,OAAA;AAAsC,SAAAO,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAEtC,IAAMG,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAC7BC,eAOC,EAQA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,OAAAC,iCAAA,EACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmC,IAAAC,uCAAkB,EAACN,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,WAAAM,sBAAA,MAAAA,sBAAA,MAAWL,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAEM,IAAMO,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAvBA,oBAAoBA,CAC7BE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAG,IAAAC,qBAAc,EAACL,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMhB,eAAe,GAAGD,2BAA2B,CAACkB,eAAe,CAAC;EACpE,IAAME,KAAK,GAAG,IAAAC,4BAAgB,EAACpB,eAAe,CAAC;EAE/C,IAAMqB,eAAe,GAAG,IAAAC,cAAO,EAC3B;IAAA,IAAAC,qBAAA,EAAAC,WAAA;IAAA,QAAAD,qBAAA,IAAAC,WAAA,GAAML,KAAK,CAACM,IAAI,cAAAD,WAAA,uBAAVA,WAAA,CAAYE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GACrC,CAACJ,KAAK,CAACM,IAAI,CACf,CAAC;EAED,IAAMG,UAAU,GAAG5B,eAAe,CAAC6B,OAAO,KAAK,KAAK,IAAI7B,eAAe,CAACE,OAAO,KAAK4B,qBAAS;EAE7F,WAAApB,sBAAA,MAAAA,sBAAA,MACOS,KAAK;IACRY,MAAM,EAAE,IAAAC,gCAAe,EAACb,KAAK,CAACY,MAAM,EAAEZ,KAAK,CAACc,WAAW,CAAC;IACxDR,IAAI,EAAEJ,eAAe;IACrBa,cAAc,EAAEf,KAAK,CAACY,MAAM;IAC5BI,YAAY,EAAEhB,KAAK,CAACM,IAAI;IACxBW,OAAO,EAAER,UAAU,GAAGS,wCAAmB,GAAG,IAAAC,wBAAW,EAACnB,KAAK,CAACiB,OAAO;EAAC;AAE9E,CAAC","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ export type AnyPageParam = Partial<any>;
|
|
|
14
14
|
type ResultWrapper<TResult, TRequest, TResponse, TData, TError> = TResult extends InfiniteQueryObserverResult<InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>, TError> ? Overwrite<TResult, {
|
|
15
15
|
status: DataLoaderStatus;
|
|
16
16
|
data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;
|
|
17
|
+
refetch: () => Promise<void>;
|
|
17
18
|
}> & {
|
|
18
19
|
originalStatus: TResult['status'];
|
|
19
20
|
originalData: TResult['data'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type InfiniteQueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> = Assign<\n InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<\n TQueryFnData,\n TError,\n InfiniteData<TQueryData, TPageParam>,\n TQueryKey\n >\n>;\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TResponse>,\n DataSourceKey,\n Partial<NoInfer<TRequest>>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TError>\n >,\n NoInfer<TRequest>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>\n> & {\n type: 'infinite';\n next: (\n lastPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n prev?: (\n firstPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type InfiniteQueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> = Assign<\n InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<\n TQueryFnData,\n TError,\n InfiniteData<TQueryData, TPageParam>,\n TQueryKey\n >\n>;\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TResponse>,\n DataSourceKey,\n Partial<NoInfer<TRequest>>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TError>\n >,\n NoInfer<TRequest>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>\n> & {\n type: 'infinite';\n next: (\n lastPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n prev?: (\n firstPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;\n refetch: () => Promise<void>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -9,6 +9,8 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
9
9
|
var _reactQuery = require("@tanstack/react-query");
|
|
10
10
|
var _useRefetchInterval2 = require("../../hooks/useRefetchInterval");
|
|
11
11
|
var _normalizeStatus = require("../../utils/normalizeStatus");
|
|
12
|
+
var _warnDisabledRefetch = require("../../utils/warnDisabledRefetch");
|
|
13
|
+
var _wrapRefetch = require("../../utils/wrapRefetch");
|
|
12
14
|
var _utils = require("./utils");
|
|
13
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
16
|
var _excluded = ["queryFn", "refetchInterval"];
|
|
@@ -28,9 +30,11 @@ var usePlainQueryData = exports.usePlainQueryData = function usePlainQueryData(c
|
|
|
28
30
|
var extendedOptions = (0, _utils.composeOptions)(context, dataSource, params, options);
|
|
29
31
|
var composedOptions = usePlainQueryDataOptions(extendedOptions);
|
|
30
32
|
var state = (0, _reactQuery.useQuery)(composedOptions);
|
|
33
|
+
var isDisabled = composedOptions.enabled === false || composedOptions.queryFn === _reactQuery.skipToken;
|
|
31
34
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
32
35
|
status: (0, _normalizeStatus.normalizeStatus)(state.status, state.fetchStatus),
|
|
33
|
-
originalStatus: state.status
|
|
36
|
+
originalStatus: state.status,
|
|
37
|
+
refetch: isDisabled ? _warnDisabledRefetch.warnDisabledRefetch : (0, _wrapRefetch.wrapRefetch)(state.refetch)
|
|
34
38
|
});
|
|
35
39
|
};
|
|
36
40
|
// #sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactQuery","require","_useRefetchInterval2","_normalizeStatus","_utils","_interopRequireDefault","e","__esModule","default","usePlainQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","useRefetchInterval","_objectSpread","usePlainQueryData","exports","context","dataSource","params","options","extendedOptions","composeOptions","state","useQuery","status","normalizeStatus","fetchStatus","originalStatus"],"sources":["hooks.ts"],"sourcesContent":["import {type QueryObserverOptions, useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst usePlainQueryDataOptions = <TDataSource extends AnyPlainQueryDataSource>(\n composedOptions: QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n >,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = usePlainQueryDataOptions(extendedOptions);\n const state = useQuery(composedOptions);\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n originalStatus: state.status,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAYA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_useRefetchInterval2","_normalizeStatus","_warnDisabledRefetch","_wrapRefetch","_utils","_interopRequireDefault","e","__esModule","default","usePlainQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","useRefetchInterval","_objectSpread","usePlainQueryData","exports","context","dataSource","params","options","extendedOptions","composeOptions","state","useQuery","isDisabled","enabled","skipToken","status","normalizeStatus","fetchStatus","originalStatus","refetch","warnDisabledRefetch","wrapRefetch"],"sources":["hooks.ts"],"sourcesContent":["import {type QueryObserverOptions, skipToken, useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\nimport {wrapRefetch} from '../../utils/wrapRefetch';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst usePlainQueryDataOptions = <TDataSource extends AnyPlainQueryDataSource>(\n composedOptions: QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n >,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = usePlainQueryDataOptions(extendedOptions);\n const state = useQuery(composedOptions);\n\n const isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n originalStatus: state.status,\n refetch: isDisabled ? warnDisabledRefetch : wrapRefetch(state.refetch),\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAYA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AAAsC,SAAAM,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAEtC,IAAMG,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAC1BC,eAMC,EAOA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,OAAAC,iCAAA,EACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmC,IAAAC,uCAAkB,EAACN,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,WAAAM,sBAAA,MAAAA,sBAAA,MAAWL,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAEM,IAAMO,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAC1BE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAG,IAAAC,qBAAc,EAACL,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMhB,eAAe,GAAGD,wBAAwB,CAACkB,eAAe,CAAC;EACjE,IAAME,KAAK,GAAG,IAAAC,oBAAQ,EAACpB,eAAe,CAAC;EAEvC,IAAMqB,UAAU,GAAGrB,eAAe,CAACsB,OAAO,KAAK,KAAK,IAAItB,eAAe,CAACE,OAAO,KAAKqB,qBAAS;EAE7F,WAAAb,sBAAA,MAAAA,sBAAA,MACOS,KAAK;IACRK,MAAM,EAAE,IAAAC,gCAAe,EAACN,KAAK,CAACK,MAAM,EAAEL,KAAK,CAACO,WAAW,CAAC;IACxDC,cAAc,EAAER,KAAK,CAACK,MAAM;IAC5BI,OAAO,EAAEP,UAAU,GAAGQ,wCAAmB,GAAG,IAAAC,wBAAW,EAACX,KAAK,CAACS,OAAO;EAAC;AAE9E,CAAC","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> =
|
|
|
10
10
|
export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;
|
|
11
11
|
type ResultWrapper<TResult, TResponse, TData, TError> = TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError> ? Overwrite<TResult, {
|
|
12
12
|
status: DataLoaderStatus;
|
|
13
|
+
refetch: () => Promise<void>;
|
|
13
14
|
}> & {
|
|
14
15
|
originalStatus: TResult['status'];
|
|
15
16
|
} : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n QueryFunctionContext,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type QueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> = Assign<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>\n>;\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n ActualData<NoInfer<TData>, NoInfer<TResponse>>,\n NoInfer<TResponse>,\n DataSourceKey\n >,\n ResultWrapper<\n QueryObserverResult<ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TError>>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey>\n> & {\n type: 'plain';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError> =\n TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError>\n ? Overwrite
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n QueryFunctionContext,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type QueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> = Assign<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>\n>;\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n ActualData<NoInfer<TData>, NoInfer<TResponse>>,\n NoInfer<TResponse>,\n DataSourceKey\n >,\n ResultWrapper<\n QueryObserverResult<ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TError>>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey>\n> & {\n type: 'plain';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError> =\n TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError>\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n refetch: () => Promise<void>;\n }\n > & {originalStatus: TResult['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -3,6 +3,11 @@ import type { OptimisticConfig } from '../../core/types/Normalizer';
|
|
|
3
3
|
import type { RefetchInterval } from './refetch-interval';
|
|
4
4
|
export interface QueryDataAdditionalOptions<TQueryFnData = unknown, TError = DefaultError, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
|
|
5
5
|
refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated The use of the enabled option is deprecated.
|
|
8
|
+
* It is recommended to use idle as query parameters to control query state.
|
|
9
|
+
*/
|
|
10
|
+
enabled?: boolean;
|
|
6
11
|
/** Normalization configuration (enable/disable) */
|
|
7
12
|
normalize?: boolean;
|
|
8
13
|
/** Optimistic data update configuration */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["options.ts"],"sourcesContent":["import type {DefaultError, QueryKey} from '@tanstack/react-query';\n\nimport type {OptimisticConfig} from '../../core/types/Normalizer';\n\nimport type {RefetchInterval} from './refetch-interval';\n\nexport interface QueryDataAdditionalOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;\n /** Normalization configuration (enable/disable) */\n normalize?: boolean;\n /** Optimistic data update configuration */\n optimistic?: boolean | OptimisticConfig;\n /** Invalidate data configuration */\n invalidate?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["options.ts"],"sourcesContent":["import type {DefaultError, QueryKey} from '@tanstack/react-query';\n\nimport type {OptimisticConfig} from '../../core/types/Normalizer';\n\nimport type {RefetchInterval} from './refetch-interval';\n\nexport interface QueryDataAdditionalOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;\n /**\n * @deprecated The use of the enabled option is deprecated.\n * It is recommended to use idle as query parameters to control query state.\n */\n enabled?: boolean;\n /** Normalization configuration (enable/disable) */\n normalize?: boolean;\n /** Optimistic data update configuration */\n optimistic?: boolean | OptimisticConfig;\n /** Invalidate data configuration */\n invalidate?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function warn(msg: string): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.warn = warn;
|
|
7
|
+
function warn(msg) {
|
|
8
|
+
if (!msg || process.env.NODE_ENV === 'production') {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// eslint-disable-next-line no-console
|
|
13
|
+
console.warn(msg);
|
|
14
|
+
}
|
|
15
|
+
// #sourceMappingURL=warn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["warn","msg","process","env","NODE_ENV","console"],"sources":["warn.ts"],"sourcesContent":["export function warn(msg: string) {\n if (!msg || process.env.NODE_ENV === 'production') {\n return;\n }\n\n // eslint-disable-next-line no-console\n console.warn(msg);\n}\n"],"mappings":";;;;;;AAAO,SAASA,IAAIA,CAACC,GAAW,EAAE;EAC9B,IAAI,CAACA,GAAG,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IAC/C;EACJ;;EAEA;EACAC,OAAO,CAACL,IAAI,CAACC,GAAG,CAAC;AACrB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const warnDisabledRefetch: () => Promise<void>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.warnDisabledRefetch = void 0;
|
|
7
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
8
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
|
+
var _warn = require("./warn");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
var warnDisabledRefetch = exports.warnDisabledRefetch = /*#__PURE__*/function () {
|
|
12
|
+
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
13
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
14
|
+
while (1) switch (_context.prev = _context.next) {
|
|
15
|
+
case 0:
|
|
16
|
+
(0, _warn.warn)('Disabled refetch is called');
|
|
17
|
+
case 1:
|
|
18
|
+
case "end":
|
|
19
|
+
return _context.stop();
|
|
20
|
+
}
|
|
21
|
+
}, _callee);
|
|
22
|
+
}));
|
|
23
|
+
return function warnDisabledRefetch() {
|
|
24
|
+
return _ref.apply(this, arguments);
|
|
25
|
+
};
|
|
26
|
+
}();
|
|
27
|
+
// #sourceMappingURL=warnDisabledRefetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_warn","require","_interopRequireDefault","e","__esModule","default","warnDisabledRefetch","exports","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","warn","stop","apply","arguments"],"sources":["warnDisabledRefetch.ts"],"sourcesContent":["import {warn} from './warn';\n\nexport const warnDisabledRefetch = async (): Promise<void> => {\n warn('Disabled refetch is called');\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAA2B,SAAAC,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpB,IAAMG,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA;EAAA,IAAAE,IAAA,OAAAC,0BAAA,mBAAAC,4BAAA,IAAAC,IAAA,CAAG,SAAAC,QAAA;IAAA,WAAAF,4BAAA,IAAAG,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC/B,IAAAC,UAAI,EAAC,4BAA4B,CAAC;QAAC;QAAA;UAAA,OAAAH,QAAA,CAAAI,IAAA;MAAA;IAAA,GAAAP,OAAA;EAAA,CACtC;EAAA,gBAFYN,mBAAmBA,CAAA;IAAA,OAAAE,IAAA,CAAAY,KAAA,OAAAC,SAAA;EAAA;AAAA,GAE/B","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.wrapRefetch = wrapRefetch;
|
|
7
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
8
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function wrapRefetch(refetch) {
|
|
11
|
+
return /*#__PURE__*/function () {
|
|
12
|
+
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(options) {
|
|
13
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
14
|
+
while (1) switch (_context.prev = _context.next) {
|
|
15
|
+
case 0:
|
|
16
|
+
_context.next = 2;
|
|
17
|
+
return refetch(options);
|
|
18
|
+
case 2:
|
|
19
|
+
case "end":
|
|
20
|
+
return _context.stop();
|
|
21
|
+
}
|
|
22
|
+
}, _callee);
|
|
23
|
+
}));
|
|
24
|
+
return function (_x) {
|
|
25
|
+
return _ref.apply(this, arguments);
|
|
26
|
+
};
|
|
27
|
+
}();
|
|
28
|
+
}
|
|
29
|
+
// #sourceMappingURL=wrapRefetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["wrapRefetch","refetch","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","options","wrap","_callee$","_context","prev","next","stop","_x","apply","arguments"],"sources":["wrapRefetch.ts"],"sourcesContent":["import type {QueryObserverResult, RefetchOptions} from '@tanstack/react-query';\n\nexport function wrapRefetch<TData, TError>(\n refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<TData, TError>>,\n): (options?: RefetchOptions) => Promise<void> {\n return async (options?: RefetchOptions) => {\n await refetch(options);\n };\n}\n"],"mappings":";;;;;;;;;AAEO,SAASA,WAAWA,CACvBC,OAAkF,EACvC;EAC3C;IAAA,IAAAC,IAAA,OAAAC,0BAAA,mBAAAC,4BAAA,IAAAC,IAAA,CAAO,SAAAC,QAAOC,OAAwB;MAAA,WAAAH,4BAAA,IAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAC5BX,OAAO,CAACM,OAAO,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAG,IAAA;QAAA;MAAA,GAAAP,OAAA;IAAA,CACzB;IAAA,iBAAAQ,EAAA;MAAA,OAAAZ,IAAA,CAAAa,KAAA,OAAAC,SAAA;IAAA;EAAA;AACL","ignoreList":[]}
|
|
@@ -23,4 +23,7 @@
|
|
|
23
23
|
* (error) => ({ error: true, message: error.message })
|
|
24
24
|
* );
|
|
25
25
|
*/
|
|
26
|
-
export declare function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(fetchFn: (...args: TArgs) => Promise<TFetchReturnType>, onCatchFn: (reason: unknown) => TCatchReturnType): (...args: TArgs) => Promise<TFetchReturnType
|
|
26
|
+
export declare function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(fetchFn: (...args: TArgs) => Promise<TFetchReturnType>, onCatchFn: (reason: unknown) => TCatchReturnType): (...args: TArgs) => Promise<WithCatchMergedReturn<TFetchReturnType, TCatchReturnType>>;
|
|
27
|
+
/** If success is array-typed, an inferred `() => []` handler (`never[]`) is merged into the success type. */
|
|
28
|
+
type WithCatchMergedReturn<TSuccess, TCatch> = [TCatch] extends [never] ? TSuccess : [TSuccess] extends [readonly unknown[]] ? TCatch extends readonly never[] ? TSuccess : TSuccess | TCatch : TSuccess | TCatch;
|
|
29
|
+
export {};
|
|
@@ -28,4 +28,6 @@ export function withCatch(fetchFn, onCatchFn) {
|
|
|
28
28
|
return fetchFn.apply(void 0, arguments)["catch"](onCatchFn);
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
+
|
|
32
|
+
/** If success is array-typed, an inferred `() => []` handler (`never[]`) is merged into the success type. */
|
|
31
33
|
// #sourceMappingURL=withCatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["withCatch","fetchFn","onCatchFn","apply","arguments"],"sources":["withCatch.ts"],"sourcesContent":["/**\n * Creates a wrapper around a function that safely handles errors using a provided error handler.\n *\n * This utility function enhances a Promise-returning function by adding standardized error handling.\n * It catches any errors thrown by the original function and processes them through the provided\n * error handler, allowing for consistent error management across the application.\n *\n * @template TArgs - The argument types of the original function\n * @template TFetchReturnType - The return type of the original function's Promise\n * @template TCatchReturnType - The return type of the error handler function\n *\n * @param fetchFn - The original function that returns a Promise\n * @param onCatchFn - The error handler function that processes any caught errors\n *\n * @returns A new function with the same signature as the original function,\n * but with error handling applied. The returned function will resolve to either\n * the successful result of the original function or the result of the error handler.\n *\n * @example\n * // Basic usage with a string parameter\n * const fetchUser = withCatch(\n * someFetchFunction,\n * (error) => ({ error: true, message: error.message })\n * );\n */\nexport function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(\n fetchFn: (...args: TArgs) => Promise<TFetchReturnType>,\n onCatchFn: (reason: unknown) => TCatchReturnType,\n): (...args: TArgs) => Promise<TFetchReturnType
|
|
1
|
+
{"version":3,"names":["withCatch","fetchFn","onCatchFn","apply","arguments"],"sources":["withCatch.ts"],"sourcesContent":["/**\n * Creates a wrapper around a function that safely handles errors using a provided error handler.\n *\n * This utility function enhances a Promise-returning function by adding standardized error handling.\n * It catches any errors thrown by the original function and processes them through the provided\n * error handler, allowing for consistent error management across the application.\n *\n * @template TArgs - The argument types of the original function\n * @template TFetchReturnType - The return type of the original function's Promise\n * @template TCatchReturnType - The return type of the error handler function\n *\n * @param fetchFn - The original function that returns a Promise\n * @param onCatchFn - The error handler function that processes any caught errors\n *\n * @returns A new function with the same signature as the original function,\n * but with error handling applied. The returned function will resolve to either\n * the successful result of the original function or the result of the error handler.\n *\n * @example\n * // Basic usage with a string parameter\n * const fetchUser = withCatch(\n * someFetchFunction,\n * (error) => ({ error: true, message: error.message })\n * );\n */\nexport function withCatch<TArgs extends unknown[], TFetchReturnType, TCatchReturnType>(\n fetchFn: (...args: TArgs) => Promise<TFetchReturnType>,\n onCatchFn: (reason: unknown) => TCatchReturnType,\n): (...args: TArgs) => Promise<WithCatchMergedReturn<TFetchReturnType, TCatchReturnType>> {\n return (...args) => {\n return fetchFn(...args).catch(onCatchFn) as Promise<\n WithCatchMergedReturn<TFetchReturnType, TCatchReturnType>\n >;\n };\n}\n\n/** If success is array-typed, an inferred `() => []` handler (`never[]`) is merged into the success type. */\ntype WithCatchMergedReturn<TSuccess, TCatch> = [TCatch] extends [never]\n ? TSuccess\n : [TSuccess] extends [readonly unknown[]]\n ? TCatch extends readonly never[]\n ? TSuccess\n : TSuccess | TCatch\n : TSuccess | TCatch;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,SAASA,CACrBC,OAAsD,EACtDC,SAAgD,EACsC;EACtF,OAAO,YAAa;IAChB,OAAOD,OAAO,CAAAE,KAAA,SAAAC,SAAQ,CAAC,SAAM,CAACF,SAAS,CAAC;EAG5C,CAAC;AACL;;AAEA","ignoreList":[]}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
4
|
+
import { QueryClient, useInfiniteQuery, useQuery } from '@tanstack/react-query';
|
|
5
|
+
import { renderHook } from '@testing-library/react';
|
|
6
|
+
import { idle } from '../../../core';
|
|
7
|
+
import { warnDisabledRefetch } from '../../utils/warnDisabledRefetch';
|
|
8
|
+
import { useQueryContext } from '../useQueryContext';
|
|
9
|
+
import { useQueryData } from '../useQueryData';
|
|
10
|
+
jest.mock('@tanstack/react-query', function () {
|
|
11
|
+
return _objectSpread(_objectSpread({}, jest.requireActual('@tanstack/react-query')), {}, {
|
|
12
|
+
useQuery: jest.fn(),
|
|
13
|
+
useInfiniteQuery: jest.fn()
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
jest.mock('../useQueryContext');
|
|
17
|
+
jest.mock('../../utils/warnDisabledRefetch');
|
|
18
|
+
var mockUseQuery = useQuery;
|
|
19
|
+
var mockUseInfiniteQuery = useInfiniteQuery;
|
|
20
|
+
var mockWarnDisabledRefetch = warnDisabledRefetch;
|
|
21
|
+
describe('useQueryData refetch behavior', function () {
|
|
22
|
+
var mockQueryClient = new QueryClient();
|
|
23
|
+
var mockContext = {
|
|
24
|
+
queryClient: mockQueryClient
|
|
25
|
+
};
|
|
26
|
+
beforeEach(function () {
|
|
27
|
+
jest.clearAllMocks();
|
|
28
|
+
useQueryContext.mockReturnValue(mockContext);
|
|
29
|
+
});
|
|
30
|
+
var createMockQueryResult = function createMockQueryResult() {
|
|
31
|
+
var refetch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : jest.fn();
|
|
32
|
+
return {
|
|
33
|
+
data: 'test-data',
|
|
34
|
+
error: null,
|
|
35
|
+
status: 'success',
|
|
36
|
+
fetchStatus: 'idle',
|
|
37
|
+
isLoading: false,
|
|
38
|
+
isError: false,
|
|
39
|
+
isSuccess: true,
|
|
40
|
+
isPending: false,
|
|
41
|
+
refetch: refetch,
|
|
42
|
+
dataUpdatedAt: Date.now(),
|
|
43
|
+
errorUpdatedAt: 0,
|
|
44
|
+
failureCount: 0,
|
|
45
|
+
failureReason: null,
|
|
46
|
+
isFetched: true,
|
|
47
|
+
isFetchedAfterMount: true,
|
|
48
|
+
isFetching: false,
|
|
49
|
+
isInitialLoading: false,
|
|
50
|
+
isLoadingError: false,
|
|
51
|
+
isPaused: false,
|
|
52
|
+
isPlaceholderData: false,
|
|
53
|
+
isPreviousData: false,
|
|
54
|
+
isRefetchError: false,
|
|
55
|
+
isRefetching: false,
|
|
56
|
+
isStale: false,
|
|
57
|
+
promise: Promise.resolve('test-data')
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
var createMockInfiniteResult = function createMockInfiniteResult() {
|
|
61
|
+
var refetch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : jest.fn();
|
|
62
|
+
return {
|
|
63
|
+
data: {
|
|
64
|
+
pages: [['item1'], ['item2']],
|
|
65
|
+
pageParams: [undefined, 'next-page']
|
|
66
|
+
},
|
|
67
|
+
error: null,
|
|
68
|
+
status: 'success',
|
|
69
|
+
fetchStatus: 'idle',
|
|
70
|
+
isLoading: false,
|
|
71
|
+
isError: false,
|
|
72
|
+
isSuccess: true,
|
|
73
|
+
isPending: false,
|
|
74
|
+
refetch: refetch,
|
|
75
|
+
hasNextPage: false,
|
|
76
|
+
hasPreviousPage: false,
|
|
77
|
+
fetchNextPage: jest.fn(),
|
|
78
|
+
fetchPreviousPage: jest.fn(),
|
|
79
|
+
isFetchingNextPage: false,
|
|
80
|
+
isFetchingPreviousPage: false,
|
|
81
|
+
dataUpdatedAt: Date.now(),
|
|
82
|
+
errorUpdatedAt: 0,
|
|
83
|
+
failureCount: 0,
|
|
84
|
+
failureReason: null,
|
|
85
|
+
isFetched: true,
|
|
86
|
+
isFetchedAfterMount: true,
|
|
87
|
+
isFetching: false,
|
|
88
|
+
isInitialLoading: false,
|
|
89
|
+
isLoadingError: false,
|
|
90
|
+
isPaused: false,
|
|
91
|
+
isPlaceholderData: false,
|
|
92
|
+
isPreviousData: false,
|
|
93
|
+
isRefetchError: false,
|
|
94
|
+
isRefetching: false,
|
|
95
|
+
isStale: false,
|
|
96
|
+
promise: Promise.resolve({
|
|
97
|
+
pages: [['item1'], ['item2']],
|
|
98
|
+
pageParams: [undefined, 'next-page']
|
|
99
|
+
})
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
describe('plain data source', function () {
|
|
103
|
+
var plainDataSource = {
|
|
104
|
+
type: 'plain',
|
|
105
|
+
name: 'test-plain',
|
|
106
|
+
fetch: jest.fn().mockResolvedValue({
|
|
107
|
+
data: 'test-data'
|
|
108
|
+
})
|
|
109
|
+
};
|
|
110
|
+
it('should wrap refetch when no enabled option', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
111
|
+
var originalRefetch, _renderHook, result;
|
|
112
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
113
|
+
while (1) switch (_context.prev = _context.next) {
|
|
114
|
+
case 0:
|
|
115
|
+
originalRefetch = jest.fn().mockResolvedValue({
|
|
116
|
+
data: 'test',
|
|
117
|
+
status: 'success'
|
|
118
|
+
});
|
|
119
|
+
mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch));
|
|
120
|
+
_renderHook = renderHook(function () {
|
|
121
|
+
return useQueryData(plainDataSource, {
|
|
122
|
+
id: 1
|
|
123
|
+
});
|
|
124
|
+
}), result = _renderHook.result;
|
|
125
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
126
|
+
expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);
|
|
127
|
+
_context.next = 7;
|
|
128
|
+
return result.current.refetch();
|
|
129
|
+
case 7:
|
|
130
|
+
expect(originalRefetch).toHaveBeenCalledTimes(1);
|
|
131
|
+
case 8:
|
|
132
|
+
case "end":
|
|
133
|
+
return _context.stop();
|
|
134
|
+
}
|
|
135
|
+
}, _callee);
|
|
136
|
+
})));
|
|
137
|
+
it('should use warnDisabledRefetch when enabled: false', function () {
|
|
138
|
+
var originalRefetch = jest.fn();
|
|
139
|
+
mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch));
|
|
140
|
+
var _renderHook2 = renderHook(function () {
|
|
141
|
+
return useQueryData(plainDataSource, {
|
|
142
|
+
id: 1
|
|
143
|
+
}, {
|
|
144
|
+
enabled: false
|
|
145
|
+
});
|
|
146
|
+
}),
|
|
147
|
+
result = _renderHook2.result;
|
|
148
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
149
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
150
|
+
});
|
|
151
|
+
it('should use warnDisabledRefetch when params is idle', function () {
|
|
152
|
+
var originalRefetch = jest.fn();
|
|
153
|
+
mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch));
|
|
154
|
+
var _renderHook3 = renderHook(function () {
|
|
155
|
+
return useQueryData(plainDataSource, idle);
|
|
156
|
+
}),
|
|
157
|
+
result = _renderHook3.result;
|
|
158
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
159
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
describe('infinite data source', function () {
|
|
163
|
+
var infiniteDataSource = {
|
|
164
|
+
type: 'infinite',
|
|
165
|
+
name: 'test-infinite',
|
|
166
|
+
fetch: jest.fn().mockResolvedValue({
|
|
167
|
+
data: ['item1', 'item2']
|
|
168
|
+
}),
|
|
169
|
+
next: jest.fn()
|
|
170
|
+
};
|
|
171
|
+
it('should wrap refetch when no enabled option', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
172
|
+
var originalRefetch, _renderHook4, result;
|
|
173
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
174
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
175
|
+
case 0:
|
|
176
|
+
originalRefetch = jest.fn().mockResolvedValue({
|
|
177
|
+
data: {
|
|
178
|
+
pages: [],
|
|
179
|
+
pageParams: []
|
|
180
|
+
},
|
|
181
|
+
status: 'success'
|
|
182
|
+
});
|
|
183
|
+
mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch));
|
|
184
|
+
_renderHook4 = renderHook(function () {
|
|
185
|
+
return useQueryData(infiniteDataSource, {
|
|
186
|
+
id: 1
|
|
187
|
+
});
|
|
188
|
+
}), result = _renderHook4.result;
|
|
189
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
190
|
+
expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);
|
|
191
|
+
_context2.next = 7;
|
|
192
|
+
return result.current.refetch();
|
|
193
|
+
case 7:
|
|
194
|
+
expect(originalRefetch).toHaveBeenCalledTimes(1);
|
|
195
|
+
case 8:
|
|
196
|
+
case "end":
|
|
197
|
+
return _context2.stop();
|
|
198
|
+
}
|
|
199
|
+
}, _callee2);
|
|
200
|
+
})));
|
|
201
|
+
it('should use warnDisabledRefetch when enabled: false', function () {
|
|
202
|
+
var originalRefetch = jest.fn();
|
|
203
|
+
mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch));
|
|
204
|
+
var _renderHook5 = renderHook(function () {
|
|
205
|
+
return useQueryData(infiniteDataSource, {
|
|
206
|
+
id: 1
|
|
207
|
+
}, {
|
|
208
|
+
enabled: false
|
|
209
|
+
});
|
|
210
|
+
}),
|
|
211
|
+
result = _renderHook5.result;
|
|
212
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
213
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
214
|
+
});
|
|
215
|
+
it('should use warnDisabledRefetch when params is idle', function () {
|
|
216
|
+
var originalRefetch = jest.fn();
|
|
217
|
+
mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch));
|
|
218
|
+
var _renderHook6 = renderHook(function () {
|
|
219
|
+
return useQueryData(infiniteDataSource, idle);
|
|
220
|
+
}),
|
|
221
|
+
result = _renderHook6.result;
|
|
222
|
+
expect(result.current.refetch).toBe(mockWarnDisabledRefetch);
|
|
223
|
+
expect(result.current.refetch).not.toBe(originalRefetch);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
// #sourceMappingURL=useQueryData.refetch.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["QueryClient","useInfiniteQuery","useQuery","renderHook","idle","warnDisabledRefetch","useQueryContext","useQueryData","jest","mock","_objectSpread","requireActual","fn","mockUseQuery","mockUseInfiniteQuery","mockWarnDisabledRefetch","describe","mockQueryClient","mockContext","queryClient","beforeEach","clearAllMocks","mockReturnValue","createMockQueryResult","refetch","arguments","length","undefined","data","error","status","fetchStatus","isLoading","isError","isSuccess","isPending","dataUpdatedAt","Date","now","errorUpdatedAt","failureCount","failureReason","isFetched","isFetchedAfterMount","isFetching","isInitialLoading","isLoadingError","isPaused","isPlaceholderData","isPreviousData","isRefetchError","isRefetching","isStale","promise","Promise","resolve","createMockInfiniteResult","pages","pageParams","hasNextPage","hasPreviousPage","fetchNextPage","fetchPreviousPage","isFetchingNextPage","isFetchingPreviousPage","plainDataSource","type","name","fetch","mockResolvedValue","it","_asyncToGenerator","_regeneratorRuntime","mark","_callee","originalRefetch","_renderHook","result","wrap","_callee$","_context","prev","next","id","expect","current","not","toBe","toHaveBeenCalledTimes","stop","_renderHook2","enabled","_renderHook3","infiniteDataSource","_callee2","_renderHook4","_callee2$","_context2","_renderHook5","_renderHook6"],"sources":["useQueryData.refetch.test.ts"],"sourcesContent":["import {QueryClient, useInfiniteQuery, useQuery} from '@tanstack/react-query';\nimport {renderHook} from '@testing-library/react';\n\nimport {idle} from '../../../core';\nimport type {AnyInfiniteQueryDataSource} from '../../impl/infinite/types';\nimport type {AnyPlainQueryDataSource} from '../../impl/plain/types';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\nimport {useQueryContext} from '../useQueryContext';\nimport {useQueryData} from '../useQueryData';\n\njest.mock('@tanstack/react-query', () => ({\n ...jest.requireActual('@tanstack/react-query'),\n useQuery: jest.fn(),\n useInfiniteQuery: jest.fn(),\n}));\n\njest.mock('../useQueryContext');\njest.mock('../../utils/warnDisabledRefetch');\n\nconst mockUseQuery = useQuery as jest.MockedFunction<typeof useQuery>;\nconst mockUseInfiniteQuery = useInfiniteQuery as jest.MockedFunction<typeof useInfiniteQuery>;\nconst mockWarnDisabledRefetch = warnDisabledRefetch as jest.MockedFunction<\n typeof warnDisabledRefetch\n>;\n\ndescribe('useQueryData refetch behavior', () => {\n const mockQueryClient = new QueryClient();\n const mockContext = {queryClient: mockQueryClient};\n\n beforeEach(() => {\n jest.clearAllMocks();\n (useQueryContext as jest.Mock).mockReturnValue(mockContext);\n });\n\n const createMockQueryResult = (refetch = jest.fn()) => ({\n data: 'test-data',\n error: null,\n status: 'success' as const,\n fetchStatus: 'idle' as const,\n isLoading: false,\n isError: false,\n isSuccess: true,\n isPending: false,\n refetch,\n dataUpdatedAt: Date.now(),\n errorUpdatedAt: 0,\n failureCount: 0,\n failureReason: null,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isInitialLoading: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isRefetching: false,\n isStale: false,\n promise: Promise.resolve('test-data'),\n });\n\n const createMockInfiniteResult = (refetch = jest.fn()) => ({\n data: {pages: [['item1'], ['item2']], pageParams: [undefined, 'next-page']},\n error: null,\n status: 'success' as const,\n fetchStatus: 'idle' as const,\n isLoading: false,\n isError: false,\n isSuccess: true,\n isPending: false,\n refetch,\n hasNextPage: false,\n hasPreviousPage: false,\n fetchNextPage: jest.fn(),\n fetchPreviousPage: jest.fn(),\n isFetchingNextPage: false,\n isFetchingPreviousPage: false,\n dataUpdatedAt: Date.now(),\n errorUpdatedAt: 0,\n failureCount: 0,\n failureReason: null,\n isFetched: true,\n isFetchedAfterMount: true,\n isFetching: false,\n isInitialLoading: false,\n isLoadingError: false,\n isPaused: false,\n isPlaceholderData: false,\n isPreviousData: false,\n isRefetchError: false,\n isRefetching: false,\n isStale: false,\n promise: Promise.resolve({\n pages: [['item1'], ['item2']],\n pageParams: [undefined, 'next-page'],\n }),\n });\n\n describe('plain data source', () => {\n const plainDataSource: AnyPlainQueryDataSource = {\n type: 'plain',\n name: 'test-plain',\n fetch: jest.fn().mockResolvedValue({data: 'test-data'}),\n };\n\n it('should wrap refetch when no enabled option', async () => {\n const originalRefetch = jest.fn().mockResolvedValue({data: 'test', status: 'success'});\n mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(plainDataSource, {id: 1}));\n\n expect(result.current.refetch).not.toBe(originalRefetch);\n expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);\n\n await result.current.refetch();\n expect(originalRefetch).toHaveBeenCalledTimes(1);\n });\n\n it('should use warnDisabledRefetch when enabled: false', () => {\n const originalRefetch = jest.fn();\n mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch) as any);\n\n const {result} = renderHook(() =>\n useQueryData(plainDataSource, {id: 1}, {enabled: false}),\n );\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n\n it('should use warnDisabledRefetch when params is idle', () => {\n const originalRefetch = jest.fn();\n mockUseQuery.mockReturnValue(createMockQueryResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(plainDataSource, idle));\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n });\n\n describe('infinite data source', () => {\n const infiniteDataSource: AnyInfiniteQueryDataSource = {\n type: 'infinite',\n name: 'test-infinite',\n fetch: jest.fn().mockResolvedValue({data: ['item1', 'item2']}),\n next: jest.fn(),\n };\n\n it('should wrap refetch when no enabled option', async () => {\n const originalRefetch = jest.fn().mockResolvedValue({\n data: {pages: [], pageParams: []},\n status: 'success',\n });\n mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(infiniteDataSource, {id: 1}));\n\n expect(result.current.refetch).not.toBe(originalRefetch);\n expect(result.current.refetch).not.toBe(mockWarnDisabledRefetch);\n\n await result.current.refetch();\n expect(originalRefetch).toHaveBeenCalledTimes(1);\n });\n\n it('should use warnDisabledRefetch when enabled: false', () => {\n const originalRefetch = jest.fn();\n mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch) as any);\n\n const {result} = renderHook(() =>\n useQueryData(infiniteDataSource, {id: 1}, {enabled: false}),\n );\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n\n it('should use warnDisabledRefetch when params is idle', () => {\n const originalRefetch = jest.fn();\n mockUseInfiniteQuery.mockReturnValue(createMockInfiniteResult(originalRefetch) as any);\n\n const {result} = renderHook(() => useQueryData(infiniteDataSource, idle));\n\n expect(result.current.refetch).toBe(mockWarnDisabledRefetch);\n expect(result.current.refetch).not.toBe(originalRefetch);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,9 +2,11 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["queryFn", "refetchInterval"];
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
|
-
import { useInfiniteQuery } from '@tanstack/react-query';
|
|
5
|
+
import { skipToken, useInfiniteQuery } from '@tanstack/react-query';
|
|
6
6
|
import { useRefetchInterval } from '../../hooks/useRefetchInterval';
|
|
7
7
|
import { normalizeStatus } from '../../utils/normalizeStatus';
|
|
8
|
+
import { warnDisabledRefetch } from '../../utils/warnDisabledRefetch';
|
|
9
|
+
import { wrapRefetch } from '../../utils/wrapRefetch';
|
|
8
10
|
import { composeOptions } from './utils';
|
|
9
11
|
var useInfiniteQueryDataOptions = function useInfiniteQueryDataOptions(composedOptions) {
|
|
10
12
|
var queryFnOption = composedOptions.queryFn,
|
|
@@ -26,11 +28,13 @@ export var useInfiniteQueryData = function useInfiniteQueryData(context, dataSou
|
|
|
26
28
|
var _state$data$pages$fla, _state$data;
|
|
27
29
|
return (_state$data$pages$fla = (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.pages.flat(1)) !== null && _state$data$pages$fla !== void 0 ? _state$data$pages$fla : [];
|
|
28
30
|
}, [state.data]);
|
|
31
|
+
var isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;
|
|
29
32
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
30
33
|
status: normalizeStatus(state.status, state.fetchStatus),
|
|
31
34
|
data: transformedData,
|
|
32
35
|
originalStatus: state.status,
|
|
33
|
-
originalData: state.data
|
|
36
|
+
originalData: state.data,
|
|
37
|
+
refetch: isDisabled ? warnDisabledRefetch : wrapRefetch(state.refetch)
|
|
34
38
|
});
|
|
35
39
|
};
|
|
36
40
|
// #sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useInfiniteQuery","useRefetchInterval","normalizeStatus","composeOptions","useInfiniteQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","useInfiniteQueryData","context","dataSource","params","options","extendedOptions","state","transformedData","_state$data$pages$fla","_state$data","data","pages","flat","status","fetchStatus","originalStatus","originalData"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useInfiniteQuery} from '@tanstack/react-query';\nimport type {InfiniteData, InfiniteQueryObserverOptions} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyInfiniteQueryDataSource, InfiniteQueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst useInfiniteQueryDataOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n composedOptions: InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n >,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = useInfiniteQueryDataOptions(extendedOptions);\n const state = useInfiniteQuery(composedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => state.data?.pages.flat(1) ?? [],\n [state.data],\n );\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n data: transformedData,\n originalStatus: state.status,\n originalData: state.data,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,gBAAgB,QAAO,uBAAuB;
|
|
1
|
+
{"version":3,"names":["useMemo","skipToken","useInfiniteQuery","useRefetchInterval","normalizeStatus","warnDisabledRefetch","wrapRefetch","composeOptions","useInfiniteQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","useInfiniteQueryData","context","dataSource","params","options","extendedOptions","state","transformedData","_state$data$pages$fla","_state$data","data","pages","flat","isDisabled","enabled","status","fetchStatus","originalStatus","originalData","refetch"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {skipToken, useInfiniteQuery} from '@tanstack/react-query';\nimport type {InfiniteData, InfiniteQueryObserverOptions} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\nimport {wrapRefetch} from '../../utils/wrapRefetch';\n\nimport type {AnyInfiniteQueryDataSource, InfiniteQueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst useInfiniteQueryDataOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n composedOptions: InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n >,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, Partial<DataSourceRequest<TDataSource>>>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n Partial<DataSourceRequest<TDataSource>>\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = useInfiniteQueryDataOptions(extendedOptions);\n const state = useInfiniteQuery(composedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => state.data?.pages.flat(1) ?? [],\n [state.data],\n );\n\n const isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n data: transformedData,\n originalStatus: state.status,\n originalData: state.data,\n refetch: isDisabled ? warnDisabledRefetch : wrapRefetch(state.refetch),\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,SAAS,EAAEC,gBAAgB,QAAO,uBAAuB;AAcjE,SAAQC,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,eAAe,QAAO,6BAA6B;AAC3D,SAAQC,mBAAmB,QAAO,iCAAiC;AACnE,SAAQC,WAAW,QAAO,yBAAyB;AAGnD,SAAQC,cAAc,QAAO,SAAS;AAEtC,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAC7BC,eAOC,EAQA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,GAAAC,wBAAA,CACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmCd,kBAAkB,CAACS,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,OAAAK,aAAA,CAAAA,aAAA,KAAWJ,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAED,OAAO,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAC7BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAGjB,cAAc,CAACa,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMd,eAAe,GAAGD,2BAA2B,CAACgB,eAAe,CAAC;EACpE,IAAMC,KAAK,GAAGvB,gBAAgB,CAACO,eAAe,CAAC;EAE/C,IAAMiB,eAAe,GAAG1B,OAAO,CAC3B;IAAA,IAAA2B,qBAAA,EAAAC,WAAA;IAAA,QAAAD,qBAAA,IAAAC,WAAA,GAAMH,KAAK,CAACI,IAAI,cAAAD,WAAA,uBAAVA,WAAA,CAAYE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GACrC,CAACF,KAAK,CAACI,IAAI,CACf,CAAC;EAED,IAAMG,UAAU,GAAGvB,eAAe,CAACwB,OAAO,KAAK,KAAK,IAAIxB,eAAe,CAACE,OAAO,KAAKV,SAAS;EAE7F,OAAAiB,aAAA,CAAAA,aAAA,KACOO,KAAK;IACRS,MAAM,EAAE9B,eAAe,CAACqB,KAAK,CAACS,MAAM,EAAET,KAAK,CAACU,WAAW,CAAC;IACxDN,IAAI,EAAEH,eAAe;IACrBU,cAAc,EAAEX,KAAK,CAACS,MAAM;IAC5BG,YAAY,EAAEZ,KAAK,CAACI,IAAI;IACxBS,OAAO,EAAEN,UAAU,GAAG3B,mBAAmB,GAAGC,WAAW,CAACmB,KAAK,CAACa,OAAO;EAAC;AAE9E,CAAC","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ export type AnyPageParam = Partial<any>;
|
|
|
14
14
|
type ResultWrapper<TResult, TRequest, TResponse, TData, TError> = TResult extends InfiniteQueryObserverResult<InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>, TError> ? Overwrite<TResult, {
|
|
15
15
|
status: DataLoaderStatus;
|
|
16
16
|
data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;
|
|
17
|
+
refetch: () => Promise<void>;
|
|
17
18
|
}> & {
|
|
18
19
|
originalStatus: TResult['status'];
|
|
19
20
|
originalData: TResult['data'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type InfiniteQueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> = Assign<\n InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<\n TQueryFnData,\n TError,\n InfiniteData<TQueryData, TPageParam>,\n TQueryKey\n >\n>;\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TResponse>,\n DataSourceKey,\n Partial<NoInfer<TRequest>>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TError>\n >,\n NoInfer<TRequest>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>\n> & {\n type: 'infinite';\n next: (\n lastPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n prev?: (\n firstPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type InfiniteQueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> = Assign<\n InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<\n TQueryFnData,\n TError,\n InfiniteData<TQueryData, TPageParam>,\n TQueryKey\n >\n>;\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TResponse>,\n DataSourceKey,\n Partial<NoInfer<TRequest>>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>,\n NoInfer<TError>\n >,\n NoInfer<TRequest>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>\n> & {\n type: 'infinite';\n next: (\n lastPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n prev?: (\n firstPage: NoInfer<TResponse>,\n allPages: NoInfer<TResponse>[],\n ) => Partial<NoInfer<TRequest>> | null | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;\n refetch: () => Promise<void>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["queryFn", "refetchInterval"];
|
|
4
|
-
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { skipToken, useQuery } from '@tanstack/react-query';
|
|
5
5
|
import { useRefetchInterval } from '../../hooks/useRefetchInterval';
|
|
6
6
|
import { normalizeStatus } from '../../utils/normalizeStatus';
|
|
7
|
+
import { warnDisabledRefetch } from '../../utils/warnDisabledRefetch';
|
|
8
|
+
import { wrapRefetch } from '../../utils/wrapRefetch';
|
|
7
9
|
import { composeOptions } from './utils';
|
|
8
10
|
var usePlainQueryDataOptions = function usePlainQueryDataOptions(composedOptions) {
|
|
9
11
|
var queryFnOption = composedOptions.queryFn,
|
|
@@ -21,9 +23,11 @@ export var usePlainQueryData = function usePlainQueryData(context, dataSource, p
|
|
|
21
23
|
var extendedOptions = composeOptions(context, dataSource, params, options);
|
|
22
24
|
var composedOptions = usePlainQueryDataOptions(extendedOptions);
|
|
23
25
|
var state = useQuery(composedOptions);
|
|
26
|
+
var isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;
|
|
24
27
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
25
28
|
status: normalizeStatus(state.status, state.fetchStatus),
|
|
26
|
-
originalStatus: state.status
|
|
29
|
+
originalStatus: state.status,
|
|
30
|
+
refetch: isDisabled ? warnDisabledRefetch : wrapRefetch(state.refetch)
|
|
27
31
|
});
|
|
28
32
|
};
|
|
29
33
|
// #sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","useRefetchInterval","normalizeStatus","composeOptions","usePlainQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","usePlainQueryData","context","dataSource","params","options","extendedOptions","state","status","fetchStatus","originalStatus"],"sources":["hooks.ts"],"sourcesContent":["import {type QueryObserverOptions, useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst usePlainQueryDataOptions = <TDataSource extends AnyPlainQueryDataSource>(\n composedOptions: QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n >,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = usePlainQueryDataOptions(extendedOptions);\n const state = useQuery(composedOptions);\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n originalStatus: state.status,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAmCA,QAAQ,QAAO,uBAAuB;
|
|
1
|
+
{"version":3,"names":["skipToken","useQuery","useRefetchInterval","normalizeStatus","warnDisabledRefetch","wrapRefetch","composeOptions","usePlainQueryDataOptions","composedOptions","queryFnOption","queryFn","refetchIntervalOption","refetchInterval","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","_objectSpread","usePlainQueryData","context","dataSource","params","options","extendedOptions","state","isDisabled","enabled","status","fetchStatus","originalStatus","refetch"],"sources":["hooks.ts"],"sourcesContent":["import {type QueryObserverOptions, skipToken, useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\nimport {warnDisabledRefetch} from '../../utils/warnDisabledRefetch';\nimport {wrapRefetch} from '../../utils/wrapRefetch';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nconst usePlainQueryDataOptions = <TDataSource extends AnyPlainQueryDataSource>(\n composedOptions: QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n >,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {\n queryFn: queryFnOption,\n refetchInterval: refetchIntervalOption,\n ...restOptions\n } = composedOptions;\n\n const {queryFn, refetchInterval} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, queryFn, refetchInterval};\n};\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const extendedOptions = composeOptions(context, dataSource, params, options);\n const composedOptions = usePlainQueryDataOptions(extendedOptions);\n const state = useQuery(composedOptions);\n\n const isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;\n\n return {\n ...state,\n status: normalizeStatus(state.status, state.fetchStatus),\n originalStatus: state.status,\n refetch: isDisabled ? warnDisabledRefetch : wrapRefetch(state.refetch),\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;AAAA,SAAmCA,SAAS,EAAEC,QAAQ,QAAO,uBAAuB;AAYpF,SAAQC,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,eAAe,QAAO,6BAA6B;AAC3D,SAAQC,mBAAmB,QAAO,iCAAiC;AACnE,SAAQC,WAAW,QAAO,yBAAyB;AAGnD,SAAQC,cAAc,QAAO,SAAS;AAEtC,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAC1BC,eAMC,EAOA;EACD,IACaC,aAAa,GAGtBD,eAAe,CAHfE,OAAO;IACUC,qBAAqB,GAEtCH,eAAe,CAFfI,eAAe;IACZC,WAAW,GAAAC,wBAAA,CACdN,eAAe,EAAAO,SAAA;EAEnB,IAAAC,mBAAA,GAAmCd,kBAAkB,CAACS,qBAAqB,EAAEF,aAAa,CAAC;IAApFC,OAAO,GAAAM,mBAAA,CAAPN,OAAO;IAAEE,eAAe,GAAAI,mBAAA,CAAfJ,eAAe;EAE/B,OAAAK,aAAA,CAAAA,aAAA,KAAWJ,WAAW;IAAEH,OAAO,EAAPA,OAAO;IAAEE,eAAe,EAAfA;EAAe;AACpD,CAAC;AAED,OAAO,IAAMM,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC1BC,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAGjB,cAAc,CAACa,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMd,eAAe,GAAGD,wBAAwB,CAACgB,eAAe,CAAC;EACjE,IAAMC,KAAK,GAAGvB,QAAQ,CAACO,eAAe,CAAC;EAEvC,IAAMiB,UAAU,GAAGjB,eAAe,CAACkB,OAAO,KAAK,KAAK,IAAIlB,eAAe,CAACE,OAAO,KAAKV,SAAS;EAE7F,OAAAiB,aAAA,CAAAA,aAAA,KACOO,KAAK;IACRG,MAAM,EAAExB,eAAe,CAACqB,KAAK,CAACG,MAAM,EAAEH,KAAK,CAACI,WAAW,CAAC;IACxDC,cAAc,EAAEL,KAAK,CAACG,MAAM;IAC5BG,OAAO,EAAEL,UAAU,GAAGrB,mBAAmB,GAAGC,WAAW,CAACmB,KAAK,CAACM,OAAO;EAAC;AAE9E,CAAC","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> =
|
|
|
10
10
|
export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;
|
|
11
11
|
type ResultWrapper<TResult, TResponse, TData, TError> = TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError> ? Overwrite<TResult, {
|
|
12
12
|
status: DataLoaderStatus;
|
|
13
|
+
refetch: () => Promise<void>;
|
|
13
14
|
}> & {
|
|
14
15
|
originalStatus: TResult['status'];
|
|
15
16
|
} : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n QueryFunctionContext,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type QueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> = Assign<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>\n>;\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n ActualData<NoInfer<TData>, NoInfer<TResponse>>,\n NoInfer<TResponse>,\n DataSourceKey\n >,\n ResultWrapper<\n QueryObserverResult<ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TError>>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey>\n> & {\n type: 'plain';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError> =\n TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError>\n ? Overwrite
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n QueryFunctionContext,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Assign, Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types/base';\nimport type {QueryDataAdditionalOptions} from '../../types/options';\n\nexport type QueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> = Assign<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>\n>;\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverExtendedOptions<\n NoInfer<TResponse>,\n NoInfer<TError>,\n ActualData<NoInfer<TData>, NoInfer<TResponse>>,\n NoInfer<TResponse>,\n DataSourceKey\n >,\n ResultWrapper<\n QueryObserverResult<ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TError>>,\n NoInfer<TResponse>,\n NoInfer<TData>,\n NoInfer<TError>\n >,\n QueryFunctionContext<DataSourceKey>\n> & {\n type: 'plain';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError> =\n TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError>\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n refetch: () => Promise<void>;\n }\n > & {originalStatus: TResult['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -3,6 +3,11 @@ import type { OptimisticConfig } from '../../core/types/Normalizer';
|
|
|
3
3
|
import type { RefetchInterval } from './refetch-interval';
|
|
4
4
|
export interface QueryDataAdditionalOptions<TQueryFnData = unknown, TError = DefaultError, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
|
|
5
5
|
refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated The use of the enabled option is deprecated.
|
|
8
|
+
* It is recommended to use idle as query parameters to control query state.
|
|
9
|
+
*/
|
|
10
|
+
enabled?: boolean;
|
|
6
11
|
/** Normalization configuration (enable/disable) */
|
|
7
12
|
normalize?: boolean;
|
|
8
13
|
/** Optimistic data update configuration */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["options.ts"],"sourcesContent":["import type {DefaultError, QueryKey} from '@tanstack/react-query';\n\nimport type {OptimisticConfig} from '../../core/types/Normalizer';\n\nimport type {RefetchInterval} from './refetch-interval';\n\nexport interface QueryDataAdditionalOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;\n /** Normalization configuration (enable/disable) */\n normalize?: boolean;\n /** Optimistic data update configuration */\n optimistic?: boolean | OptimisticConfig;\n /** Invalidate data configuration */\n invalidate?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["options.ts"],"sourcesContent":["import type {DefaultError, QueryKey} from '@tanstack/react-query';\n\nimport type {OptimisticConfig} from '../../core/types/Normalizer';\n\nimport type {RefetchInterval} from './refetch-interval';\n\nexport interface QueryDataAdditionalOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> {\n refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>;\n /**\n * @deprecated The use of the enabled option is deprecated.\n * It is recommended to use idle as query parameters to control query state.\n */\n enabled?: boolean;\n /** Normalization configuration (enable/disable) */\n normalize?: boolean;\n /** Optimistic data update configuration */\n optimistic?: boolean | OptimisticConfig;\n /** Invalidate data configuration */\n invalidate?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function warn(msg: string): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["warn","msg","process","env","NODE_ENV","console"],"sources":["warn.ts"],"sourcesContent":["export function warn(msg: string) {\n if (!msg || process.env.NODE_ENV === 'production') {\n return;\n }\n\n // eslint-disable-next-line no-console\n console.warn(msg);\n}\n"],"mappings":"AAAA,OAAO,SAASA,IAAIA,CAACC,GAAW,EAAE;EAC9B,IAAI,CAACA,GAAG,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IAC/C;EACJ;;EAEA;EACAC,OAAO,CAACL,IAAI,CAACC,GAAG,CAAC;AACrB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const warnDisabledRefetch: () => Promise<void>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
import { warn } from './warn';
|
|
4
|
+
export var warnDisabledRefetch = /*#__PURE__*/function () {
|
|
5
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
7
|
+
while (1) switch (_context.prev = _context.next) {
|
|
8
|
+
case 0:
|
|
9
|
+
warn('Disabled refetch is called');
|
|
10
|
+
case 1:
|
|
11
|
+
case "end":
|
|
12
|
+
return _context.stop();
|
|
13
|
+
}
|
|
14
|
+
}, _callee);
|
|
15
|
+
}));
|
|
16
|
+
return function warnDisabledRefetch() {
|
|
17
|
+
return _ref.apply(this, arguments);
|
|
18
|
+
};
|
|
19
|
+
}();
|
|
20
|
+
// #sourceMappingURL=warnDisabledRefetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["warn","warnDisabledRefetch","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","apply","arguments"],"sources":["warnDisabledRefetch.ts"],"sourcesContent":["import {warn} from './warn';\n\nexport const warnDisabledRefetch = async (): Promise<void> => {\n warn('Disabled refetch is called');\n};\n"],"mappings":";;AAAA,SAAQA,IAAI,QAAO,QAAQ;AAE3B,OAAO,IAAMC,mBAAmB;EAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QAAA;IAAA,OAAAF,mBAAA,GAAAG,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC/BX,IAAI,CAAC,4BAA4B,CAAC;QAAC;QAAA;UAAA,OAAAS,QAAA,CAAAG,IAAA;MAAA;IAAA,GAAAN,OAAA;EAAA,CACtC;EAAA,gBAFYL,mBAAmBA,CAAA;IAAA,OAAAC,IAAA,CAAAW,KAAA,OAAAC,SAAA;EAAA;AAAA,GAE/B","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
export function wrapRefetch(refetch) {
|
|
4
|
+
return /*#__PURE__*/function () {
|
|
5
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options) {
|
|
6
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
7
|
+
while (1) switch (_context.prev = _context.next) {
|
|
8
|
+
case 0:
|
|
9
|
+
_context.next = 2;
|
|
10
|
+
return refetch(options);
|
|
11
|
+
case 2:
|
|
12
|
+
case "end":
|
|
13
|
+
return _context.stop();
|
|
14
|
+
}
|
|
15
|
+
}, _callee);
|
|
16
|
+
}));
|
|
17
|
+
return function (_x) {
|
|
18
|
+
return _ref.apply(this, arguments);
|
|
19
|
+
};
|
|
20
|
+
}();
|
|
21
|
+
}
|
|
22
|
+
// #sourceMappingURL=wrapRefetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["wrapRefetch","refetch","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","options","wrap","_callee$","_context","prev","next","stop","_x","apply","arguments"],"sources":["wrapRefetch.ts"],"sourcesContent":["import type {QueryObserverResult, RefetchOptions} from '@tanstack/react-query';\n\nexport function wrapRefetch<TData, TError>(\n refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<TData, TError>>,\n): (options?: RefetchOptions) => Promise<void> {\n return async (options?: RefetchOptions) => {\n await refetch(options);\n };\n}\n"],"mappings":";;AAEA,OAAO,SAASA,WAAWA,CACvBC,OAAkF,EACvC;EAC3C;IAAA,IAAAC,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAO,SAAAC,QAAOC,OAAwB;MAAA,OAAAH,mBAAA,GAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAC5BX,OAAO,CAACM,OAAO,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAG,IAAA;QAAA;MAAA,GAAAP,OAAA;IAAA,CACzB;IAAA,iBAAAQ,EAAA;MAAA,OAAAZ,IAAA,CAAAa,KAAA,OAAAC,SAAA;IAAA;EAAA;AACL","ignoreList":[]}
|