@gravity-ui/data-source 0.6.1 → 0.7.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/index.d.ts +2 -1
- package/build/cjs/core/index.js +7 -0
- package/build/cjs/core/index.js.map +1 -1
- package/build/cjs/core/types/DataSource.d.ts +15 -19
- package/build/cjs/core/types/DataSource.js.map +1 -1
- package/build/cjs/core/utils/__tests__/composeFullKey.test.js +34 -0
- package/build/cjs/core/utils/__tests__/composeFullKey.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/composeKey.test.js +32 -0
- package/build/cjs/core/utils/__tests__/composeKey.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/getError.test.js +31 -0
- package/build/cjs/core/utils/__tests__/getError.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/getStatus.test.js +49 -0
- package/build/cjs/core/utils/__tests__/getStatus.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/hasTag.test.js +31 -0
- package/build/cjs/core/utils/__tests__/hasTag.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/mergeStatuses.test.js +25 -0
- package/build/cjs/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/skipContext.test.js +70 -0
- package/build/cjs/core/utils/__tests__/skipContext.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/withCancellation.test.js +106 -0
- package/build/cjs/core/utils/__tests__/withCancellation.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/withCatch.test.js +208 -0
- package/build/cjs/core/utils/__tests__/withCatch.test.js.map +1 -0
- package/build/cjs/core/utils/withCatch.d.ts +26 -0
- package/build/cjs/core/utils/withCatch.js +37 -0
- package/build/cjs/core/utils/withCatch.js.map +1 -0
- package/build/cjs/react/__tests__/DataManagerContext.test.js +46 -0
- package/build/cjs/react/__tests__/DataManagerContext.test.js.map +1 -0
- package/build/cjs/react/__tests__/withDataManager.test.js +58 -0
- package/build/cjs/react/__tests__/withDataManager.test.js.map +1 -0
- package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +187 -0
- package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
- package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js +119 -0
- package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
- package/build/cjs/react/withDataManager.d.ts +1 -1
- package/build/cjs/react/withDataManager.js +3 -3
- package/build/cjs/react/withDataManager.js.map +1 -1
- package/build/cjs/react-query/constants.d.ts +2 -0
- package/build/cjs/react-query/constants.js +9 -0
- package/build/cjs/react-query/constants.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js +55 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js +97 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js +77 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js +79 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js +117 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js +156 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
- package/build/cjs/react-query/hooks/useRefetchInterval.d.ts +1 -1
- package/build/cjs/react-query/impl/infinite/factory.d.ts +1 -1
- package/build/cjs/react-query/impl/infinite/factory.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/types.d.ts +7 -7
- package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/utils.js +11 -22
- package/build/cjs/react-query/impl/infinite/utils.js.map +1 -1
- package/build/cjs/react-query/impl/plain/factory.d.ts +1 -1
- package/build/cjs/react-query/impl/plain/factory.js.map +1 -1
- package/build/cjs/react-query/impl/plain/types.d.ts +4 -4
- package/build/cjs/react-query/impl/plain/types.js.map +1 -1
- package/build/cjs/react-query/impl/plain/utils.js +12 -23
- package/build/cjs/react-query/impl/plain/utils.js.map +1 -1
- package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js +27 -0
- package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js +76 -0
- package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js +30 -0
- package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/notReachable.test.js +35 -0
- package/build/cjs/react-query/utils/__tests__/notReachable.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js +27 -0
- package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
- package/build/cjs/react-query/utils/formatNullableValue.d.ts +2 -0
- package/build/cjs/react-query/utils/formatNullableValue.js +17 -0
- package/build/cjs/react-query/utils/formatNullableValue.js.map +1 -0
- package/build/cjs/react-query/utils/getProgressiveRefetch.d.ts +2 -2
- package/build/cjs/react-query/utils/parseNullableValue.d.ts +2 -0
- package/build/cjs/react-query/utils/parseNullableValue.js +17 -0
- package/build/cjs/react-query/utils/parseNullableValue.js.map +1 -0
- package/build/cjs/setupTests.d.ts +1 -0
- package/build/cjs/setupTests.js +4 -0
- package/build/cjs/setupTests.js.map +1 -0
- package/build/esm/core/index.d.ts +2 -1
- package/build/esm/core/index.js +1 -0
- package/build/esm/core/index.js.map +1 -1
- package/build/esm/core/types/DataSource.d.ts +15 -19
- package/build/esm/core/types/DataSource.js.map +1 -1
- package/build/esm/core/utils/__tests__/composeFullKey.test.js +32 -0
- package/build/esm/core/utils/__tests__/composeFullKey.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/composeKey.test.js +30 -0
- package/build/esm/core/utils/__tests__/composeKey.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/getError.test.js +29 -0
- package/build/esm/core/utils/__tests__/getError.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/getStatus.test.js +47 -0
- package/build/esm/core/utils/__tests__/getStatus.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/hasTag.test.js +29 -0
- package/build/esm/core/utils/__tests__/hasTag.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/mergeStatuses.test.js +23 -0
- package/build/esm/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/skipContext.test.js +67 -0
- package/build/esm/core/utils/__tests__/skipContext.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/withCancellation.test.js +104 -0
- package/build/esm/core/utils/__tests__/withCancellation.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/withCatch.test.js +205 -0
- package/build/esm/core/utils/__tests__/withCatch.test.js.map +1 -0
- package/build/esm/core/utils/withCatch.d.ts +26 -0
- package/build/esm/core/utils/withCatch.js +31 -0
- package/build/esm/core/utils/withCatch.js.map +1 -0
- package/build/esm/react/__tests__/DataManagerContext.test.js +43 -0
- package/build/esm/react/__tests__/DataManagerContext.test.js.map +1 -0
- package/build/esm/react/__tests__/withDataManager.test.js +55 -0
- package/build/esm/react/__tests__/withDataManager.test.js.map +1 -0
- package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +184 -0
- package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
- package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js +116 -0
- package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
- package/build/esm/react/withDataManager.d.ts +1 -1
- package/build/esm/react/withDataManager.js +3 -3
- package/build/esm/react/withDataManager.js.map +1 -1
- package/build/esm/react-query/constants.d.ts +2 -0
- package/build/esm/react-query/constants.js +3 -0
- package/build/esm/react-query/constants.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js +52 -0
- package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.test.js +95 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js +74 -0
- package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js +77 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js +115 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js +154 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
- package/build/esm/react-query/hooks/useRefetchInterval.d.ts +1 -1
- package/build/esm/react-query/impl/infinite/factory.d.ts +1 -1
- package/build/esm/react-query/impl/infinite/factory.js.map +1 -1
- package/build/esm/react-query/impl/infinite/types.d.ts +7 -7
- package/build/esm/react-query/impl/infinite/types.js.map +1 -1
- package/build/esm/react-query/impl/infinite/utils.js +9 -20
- package/build/esm/react-query/impl/infinite/utils.js.map +1 -1
- package/build/esm/react-query/impl/plain/factory.d.ts +1 -1
- package/build/esm/react-query/impl/plain/factory.js.map +1 -1
- package/build/esm/react-query/impl/plain/types.d.ts +4 -4
- package/build/esm/react-query/impl/plain/types.js.map +1 -1
- package/build/esm/react-query/impl/plain/utils.js +10 -21
- package/build/esm/react-query/impl/plain/utils.js.map +1 -1
- package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js +25 -0
- package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js +74 -0
- package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js +28 -0
- package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/notReachable.test.js +33 -0
- package/build/esm/react-query/utils/__tests__/notReachable.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js +25 -0
- package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
- package/build/esm/react-query/utils/formatNullableValue.d.ts +2 -0
- package/build/esm/react-query/utils/formatNullableValue.js +11 -0
- package/build/esm/react-query/utils/formatNullableValue.js.map +1 -0
- package/build/esm/react-query/utils/getProgressiveRefetch.d.ts +2 -2
- package/build/esm/react-query/utils/parseNullableValue.d.ts +2 -0
- package/build/esm/react-query/utils/parseNullableValue.js +11 -0
- package/build/esm/react-query/utils/parseNullableValue.js.map +1 -0
- package/build/esm/setupTests.d.ts +1 -0
- package/build/esm/setupTests.js +2 -0
- package/build/esm/setupTests.js.map +1 -0
- package/package.json +17 -13
- package/build/cjs/react-query/impl/utils.d.ts +0 -4
- package/build/cjs/react-query/impl/utils.js +0 -27
- package/build/cjs/react-query/impl/utils.js.map +0 -1
- package/build/esm/react-query/impl/utils.d.ts +0 -4
- package/build/esm/react-query/impl/utils.js +0 -21
- package/build/esm/react-query/impl/utils.js.map +0 -1
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
var _useRefetchErrored = require("../useRefetchErrored");
|
|
5
|
+
describe('useRefetchErrored', function () {
|
|
6
|
+
it('should return a function that calls refetch only on states with errors', function () {
|
|
7
|
+
var refetch1 = jest.fn();
|
|
8
|
+
var refetch2 = jest.fn();
|
|
9
|
+
var refetch3 = jest.fn();
|
|
10
|
+
var states = [{
|
|
11
|
+
error: {
|
|
12
|
+
message: 'Error 1'
|
|
13
|
+
},
|
|
14
|
+
refetch: refetch1
|
|
15
|
+
}, {
|
|
16
|
+
error: null,
|
|
17
|
+
refetch: refetch2
|
|
18
|
+
}, {
|
|
19
|
+
error: {
|
|
20
|
+
message: 'Error 3'
|
|
21
|
+
},
|
|
22
|
+
refetch: refetch3
|
|
23
|
+
}];
|
|
24
|
+
var _renderHook = (0, _react.renderHook)(function () {
|
|
25
|
+
return (0, _useRefetchErrored.useRefetchErrored)(states);
|
|
26
|
+
}),
|
|
27
|
+
result = _renderHook.result;
|
|
28
|
+
expect(result.current).toEqual(expect.any(Function));
|
|
29
|
+
(0, _react.act)(function () {
|
|
30
|
+
result.current();
|
|
31
|
+
});
|
|
32
|
+
expect(refetch1).toHaveBeenCalledTimes(1);
|
|
33
|
+
expect(refetch2).toHaveBeenCalledTimes(0);
|
|
34
|
+
expect(refetch3).toHaveBeenCalledTimes(1);
|
|
35
|
+
});
|
|
36
|
+
it('should not call refetch if no states have errors', function () {
|
|
37
|
+
var refetch1 = jest.fn();
|
|
38
|
+
var refetch2 = jest.fn();
|
|
39
|
+
var states = [{
|
|
40
|
+
error: null,
|
|
41
|
+
refetch: refetch1
|
|
42
|
+
}, {
|
|
43
|
+
error: null,
|
|
44
|
+
refetch: refetch2
|
|
45
|
+
}];
|
|
46
|
+
var _renderHook2 = (0, _react.renderHook)(function () {
|
|
47
|
+
return (0, _useRefetchErrored.useRefetchErrored)(states);
|
|
48
|
+
}),
|
|
49
|
+
result = _renderHook2.result;
|
|
50
|
+
(0, _react.act)(function () {
|
|
51
|
+
result.current();
|
|
52
|
+
});
|
|
53
|
+
expect(refetch1).not.toHaveBeenCalled();
|
|
54
|
+
expect(refetch2).not.toHaveBeenCalled();
|
|
55
|
+
});
|
|
56
|
+
it('should handle empty states array', function () {
|
|
57
|
+
var _renderHook3 = (0, _react.renderHook)(function () {
|
|
58
|
+
return (0, _useRefetchErrored.useRefetchErrored)([]);
|
|
59
|
+
}),
|
|
60
|
+
result = _renderHook3.result;
|
|
61
|
+
(0, _react.act)(function () {
|
|
62
|
+
result.current();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
it('should memoize the refetch function when dependencies do not change', function () {
|
|
66
|
+
var refetch1 = jest.fn();
|
|
67
|
+
var refetch2 = jest.fn();
|
|
68
|
+
var states = [{
|
|
69
|
+
error: {
|
|
70
|
+
message: 'Error 1'
|
|
71
|
+
},
|
|
72
|
+
refetch: refetch1
|
|
73
|
+
}, {
|
|
74
|
+
error: null,
|
|
75
|
+
refetch: refetch2
|
|
76
|
+
}];
|
|
77
|
+
var _renderHook4 = (0, _react.renderHook)(function () {
|
|
78
|
+
return (0, _useRefetchErrored.useRefetchErrored)(states);
|
|
79
|
+
}),
|
|
80
|
+
result = _renderHook4.result,
|
|
81
|
+
rerender = _renderHook4.rerender;
|
|
82
|
+
var firstRefetchErrored = result.current;
|
|
83
|
+
rerender();
|
|
84
|
+
expect(result.current).toBe(firstRefetchErrored);
|
|
85
|
+
});
|
|
86
|
+
it('should create a new refetch function when dependencies change', function () {
|
|
87
|
+
var refetch1 = jest.fn();
|
|
88
|
+
var refetch2 = jest.fn();
|
|
89
|
+
var states = [{
|
|
90
|
+
error: {
|
|
91
|
+
message: 'Error 1'
|
|
92
|
+
},
|
|
93
|
+
refetch: refetch1
|
|
94
|
+
}, {
|
|
95
|
+
error: null,
|
|
96
|
+
refetch: refetch2
|
|
97
|
+
}];
|
|
98
|
+
var _renderHook5 = (0, _react.renderHook)(function () {
|
|
99
|
+
return (0, _useRefetchErrored.useRefetchErrored)(states);
|
|
100
|
+
}),
|
|
101
|
+
result = _renderHook5.result,
|
|
102
|
+
rerender = _renderHook5.rerender;
|
|
103
|
+
var firstRefetchErrored = result.current;
|
|
104
|
+
states = [{
|
|
105
|
+
error: {
|
|
106
|
+
message: 'New Error 1'
|
|
107
|
+
},
|
|
108
|
+
refetch: refetch1
|
|
109
|
+
}, {
|
|
110
|
+
error: null,
|
|
111
|
+
refetch: refetch2
|
|
112
|
+
}];
|
|
113
|
+
rerender();
|
|
114
|
+
expect(result.current).not.toBe(firstRefetchErrored);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
// #sourceMappingURL=useRefetchErrored.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_useRefetchErrored","describe","it","refetch1","jest","fn","refetch2","refetch3","states","error","message","refetch","_renderHook","renderHook","useRefetchErrored","result","expect","current","toEqual","any","Function","act","toHaveBeenCalledTimes","_renderHook2","not","toHaveBeenCalled","_renderHook3","_renderHook4","rerender","firstRefetchErrored","toBe","_renderHook5"],"sources":["useRefetchErrored.test.ts"],"sourcesContent":["import {act, renderHook} from '@testing-library/react';\n\nimport {useRefetchErrored} from '../useRefetchErrored';\n\ndescribe('useRefetchErrored', () => {\n it('should return a function that calls refetch only on states with errors', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n const refetch3 = jest.fn();\n\n const states = [\n {error: {message: 'Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n {error: {message: 'Error 3'}, refetch: refetch3},\n ];\n\n const {result} = renderHook(() => useRefetchErrored(states));\n\n expect(result.current).toEqual(expect.any(Function));\n\n act(() => {\n result.current();\n });\n\n expect(refetch1).toHaveBeenCalledTimes(1);\n expect(refetch2).toHaveBeenCalledTimes(0);\n expect(refetch3).toHaveBeenCalledTimes(1);\n });\n\n it('should not call refetch if no states have errors', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n\n const states = [\n {error: null, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n const {result} = renderHook(() => useRefetchErrored(states));\n\n act(() => {\n result.current();\n });\n\n expect(refetch1).not.toHaveBeenCalled();\n expect(refetch2).not.toHaveBeenCalled();\n });\n\n it('should handle empty states array', () => {\n const {result} = renderHook(() => useRefetchErrored([]));\n\n act(() => {\n result.current();\n });\n });\n\n it('should memoize the refetch function when dependencies do not change', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n\n const states = [\n {error: {message: 'Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n const {result, rerender} = renderHook(() => useRefetchErrored(states));\n\n const firstRefetchErrored = result.current;\n\n rerender();\n\n expect(result.current).toBe(firstRefetchErrored);\n });\n\n it('should create a new refetch function when dependencies change', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n\n let states = [\n {error: {message: 'Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n const {result, rerender} = renderHook(() => useRefetchErrored(states));\n\n const firstRefetchErrored = result.current;\n\n states = [\n {error: {message: 'New Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n rerender();\n\n expect(result.current).not.toBe(firstRefetchErrored);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
4
|
+
var _react = require("@testing-library/react");
|
|
5
|
+
var _useRefetchInterval = require("../useRefetchInterval");
|
|
6
|
+
describe('useRefetchInterval', function () {
|
|
7
|
+
it('should return undefined when no refetchInterval is provided', function () {
|
|
8
|
+
var _renderHook = (0, _react.renderHook)(function () {
|
|
9
|
+
return (0, _useRefetchInterval.useRefetchInterval)();
|
|
10
|
+
}),
|
|
11
|
+
result = _renderHook.result;
|
|
12
|
+
expect(result.current.refetchInterval).toBeUndefined();
|
|
13
|
+
expect(result.current.queryFn).toBeUndefined();
|
|
14
|
+
});
|
|
15
|
+
it('should return the provided refetchInterval when it is a number', function () {
|
|
16
|
+
var interval = 5000;
|
|
17
|
+
var _renderHook2 = (0, _react.renderHook)(function () {
|
|
18
|
+
return (0, _useRefetchInterval.useRefetchInterval)(interval);
|
|
19
|
+
}),
|
|
20
|
+
result = _renderHook2.result;
|
|
21
|
+
expect(result.current.refetchInterval).toBe(interval);
|
|
22
|
+
});
|
|
23
|
+
it('should return the provided refetchInterval when it is false', function () {
|
|
24
|
+
var interval = false;
|
|
25
|
+
var _renderHook3 = (0, _react.renderHook)(function () {
|
|
26
|
+
return (0, _useRefetchInterval.useRefetchInterval)(interval);
|
|
27
|
+
}),
|
|
28
|
+
result = _renderHook3.result;
|
|
29
|
+
expect(result.current.refetchInterval).toBe(interval);
|
|
30
|
+
});
|
|
31
|
+
it('should wrap the provided refetchInterval function', function () {
|
|
32
|
+
var mockQuery = {
|
|
33
|
+
state: {
|
|
34
|
+
data: {
|
|
35
|
+
value: 42
|
|
36
|
+
},
|
|
37
|
+
status: 'success'
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var refetchInterval = jest.fn(function (_query, count) {
|
|
41
|
+
return count > 3 ? false : 1000;
|
|
42
|
+
});
|
|
43
|
+
var _renderHook4 = (0, _react.renderHook)(function () {
|
|
44
|
+
return (0, _useRefetchInterval.useRefetchInterval)(refetchInterval);
|
|
45
|
+
}),
|
|
46
|
+
result = _renderHook4.result;
|
|
47
|
+
expect(result.current.refetchInterval).toEqual(expect.any(Function));
|
|
48
|
+
var resultInterval = result.current.refetchInterval(mockQuery);
|
|
49
|
+
expect(refetchInterval).toHaveBeenCalledWith(mockQuery, 0);
|
|
50
|
+
expect(resultInterval).toBe(1000);
|
|
51
|
+
});
|
|
52
|
+
it('should wrap the provided queryFn and increment count on each call', function () {
|
|
53
|
+
var mockContext = {};
|
|
54
|
+
var mockQuery = {
|
|
55
|
+
state: {
|
|
56
|
+
data: {
|
|
57
|
+
value: 42
|
|
58
|
+
},
|
|
59
|
+
status: 'success'
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
var queryFn = jest.fn().mockResolvedValue({
|
|
63
|
+
value: 42
|
|
64
|
+
});
|
|
65
|
+
var refetchInterval = jest.fn(function (_query, count) {
|
|
66
|
+
return count > 3 ? false : 1000;
|
|
67
|
+
});
|
|
68
|
+
var _renderHook5 = (0, _react.renderHook)(function () {
|
|
69
|
+
return (0, _useRefetchInterval.useRefetchInterval)(refetchInterval, queryFn);
|
|
70
|
+
}),
|
|
71
|
+
result = _renderHook5.result;
|
|
72
|
+
expect(result.current.queryFn).toEqual(expect.any(Function));
|
|
73
|
+
expect(result.current.refetchInterval).toEqual(expect.any(Function));
|
|
74
|
+
result.current.queryFn(mockContext);
|
|
75
|
+
result.current.refetchInterval(mockQuery);
|
|
76
|
+
result.current.queryFn(mockContext);
|
|
77
|
+
result.current.refetchInterval(mockQuery);
|
|
78
|
+
result.current.queryFn(mockContext);
|
|
79
|
+
result.current.refetchInterval(mockQuery);
|
|
80
|
+
result.current.queryFn(mockContext);
|
|
81
|
+
result.current.refetchInterval(mockQuery);
|
|
82
|
+
expect(queryFn.mock.calls).toEqual([[mockContext], [mockContext], [mockContext], [mockContext]]);
|
|
83
|
+
expect(refetchInterval.mock.calls).toEqual([[mockQuery, 1], [mockQuery, 2], [mockQuery, 3], [mockQuery, 4]]);
|
|
84
|
+
expect(refetchInterval.mock.results).toEqual([{
|
|
85
|
+
type: 'return',
|
|
86
|
+
value: 1000
|
|
87
|
+
}, {
|
|
88
|
+
type: 'return',
|
|
89
|
+
value: 1000
|
|
90
|
+
}, {
|
|
91
|
+
type: 'return',
|
|
92
|
+
value: 1000
|
|
93
|
+
}, {
|
|
94
|
+
type: 'return',
|
|
95
|
+
value: false
|
|
96
|
+
}]);
|
|
97
|
+
});
|
|
98
|
+
it('should return the provided queryFn when it is not a function', function () {
|
|
99
|
+
var _renderHook6 = (0, _react.renderHook)(function () {
|
|
100
|
+
return (0, _useRefetchInterval.useRefetchInterval)(undefined, _reactQuery.skipToken);
|
|
101
|
+
}),
|
|
102
|
+
result = _renderHook6.result;
|
|
103
|
+
expect(result.current.queryFn).toBe(_reactQuery.skipToken);
|
|
104
|
+
});
|
|
105
|
+
it('should memoize the wrapped functions', function () {
|
|
106
|
+
var refetchInterval = jest.fn(function () {
|
|
107
|
+
return 1000;
|
|
108
|
+
});
|
|
109
|
+
var queryFn = jest.fn().mockResolvedValue({
|
|
110
|
+
value: 42
|
|
111
|
+
});
|
|
112
|
+
var _renderHook7 = (0, _react.renderHook)(function () {
|
|
113
|
+
return (0, _useRefetchInterval.useRefetchInterval)(refetchInterval, queryFn);
|
|
114
|
+
}),
|
|
115
|
+
result = _renderHook7.result,
|
|
116
|
+
rerender = _renderHook7.rerender;
|
|
117
|
+
var firstRefetchInterval = result.current.refetchInterval;
|
|
118
|
+
var firstQueryFn = result.current.queryFn;
|
|
119
|
+
rerender();
|
|
120
|
+
expect(result.current.refetchInterval).toBe(firstRefetchInterval);
|
|
121
|
+
expect(result.current.queryFn).toBe(firstQueryFn);
|
|
122
|
+
});
|
|
123
|
+
it('should create new functions when dependencies change', function () {
|
|
124
|
+
var refetchInterval1 = jest.fn(function () {
|
|
125
|
+
return 1000;
|
|
126
|
+
});
|
|
127
|
+
var queryFn1 = jest.fn().mockResolvedValue({
|
|
128
|
+
value: 42
|
|
129
|
+
});
|
|
130
|
+
var _renderHook8 = (0, _react.renderHook)(function (props) {
|
|
131
|
+
return (0, _useRefetchInterval.useRefetchInterval)(props.refetchInterval, props.queryFn);
|
|
132
|
+
}, {
|
|
133
|
+
initialProps: {
|
|
134
|
+
refetchInterval: refetchInterval1,
|
|
135
|
+
queryFn: queryFn1
|
|
136
|
+
}
|
|
137
|
+
}),
|
|
138
|
+
result = _renderHook8.result,
|
|
139
|
+
rerender = _renderHook8.rerender;
|
|
140
|
+
var firstRefetchInterval = result.current.refetchInterval;
|
|
141
|
+
var firstQueryFn = result.current.queryFn;
|
|
142
|
+
var refetchInterval2 = jest.fn(function () {
|
|
143
|
+
return 2000;
|
|
144
|
+
});
|
|
145
|
+
var queryFn2 = jest.fn().mockResolvedValue({
|
|
146
|
+
value: 100
|
|
147
|
+
});
|
|
148
|
+
rerender({
|
|
149
|
+
refetchInterval: refetchInterval2,
|
|
150
|
+
queryFn: queryFn2
|
|
151
|
+
});
|
|
152
|
+
expect(result.current.refetchInterval).not.toBe(firstRefetchInterval);
|
|
153
|
+
expect(result.current.queryFn).not.toBe(firstQueryFn);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
// #sourceMappingURL=useRefetchInterval.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_react","_useRefetchInterval","describe","it","_renderHook","renderHook","useRefetchInterval","result","expect","current","refetchInterval","toBeUndefined","queryFn","interval","_renderHook2","toBe","_renderHook3","mockQuery","state","data","value","status","jest","fn","_query","count","_renderHook4","toEqual","any","Function","resultInterval","toHaveBeenCalledWith","mockContext","mockResolvedValue","_renderHook5","mock","calls","results","type","_renderHook6","undefined","skipToken","_renderHook7","rerender","firstRefetchInterval","firstQueryFn","refetchInterval1","queryFn1","_renderHook8","props","initialProps","refetchInterval2","queryFn2","not"],"sources":["useRefetchInterval.test.ts"],"sourcesContent":["import {type Query, skipToken} from '@tanstack/react-query';\nimport {renderHook} from '@testing-library/react';\n\nimport {useRefetchInterval} from '../useRefetchInterval';\n\ndescribe('useRefetchInterval', () => {\n it('should return undefined when no refetchInterval is provided', () => {\n const {result} = renderHook(() => useRefetchInterval());\n\n expect(result.current.refetchInterval).toBeUndefined();\n expect(result.current.queryFn).toBeUndefined();\n });\n\n it('should return the provided refetchInterval when it is a number', () => {\n const interval = 5000;\n const {result} = renderHook(() => useRefetchInterval(interval));\n\n expect(result.current.refetchInterval).toBe(interval);\n });\n\n it('should return the provided refetchInterval when it is false', () => {\n const interval = false;\n const {result} = renderHook(() => useRefetchInterval(interval));\n\n expect(result.current.refetchInterval).toBe(interval);\n });\n\n it('should wrap the provided refetchInterval function', () => {\n const mockQuery = {\n state: {\n data: {value: 42},\n status: 'success',\n },\n } as Query;\n\n const refetchInterval = jest.fn((_query, count) => {\n return count > 3 ? false : 1000;\n });\n\n const {result} = renderHook(() => useRefetchInterval(refetchInterval));\n\n expect(result.current.refetchInterval).toEqual(expect.any(Function));\n\n const resultInterval = (result.current.refetchInterval as Function)(mockQuery);\n\n expect(refetchInterval).toHaveBeenCalledWith(mockQuery, 0);\n expect(resultInterval).toBe(1000);\n });\n\n it('should wrap the provided queryFn and increment count on each call', () => {\n const mockContext = {};\n const mockQuery = {\n state: {\n data: {value: 42},\n status: 'success',\n },\n } as Query;\n\n const queryFn = jest.fn().mockResolvedValue({value: 42});\n const refetchInterval = jest.fn((_query, count) => {\n return count > 3 ? false : 1000;\n });\n\n const {result} = renderHook(() => useRefetchInterval(refetchInterval, queryFn));\n\n expect(result.current.queryFn).toEqual(expect.any(Function));\n expect(result.current.refetchInterval).toEqual(expect.any(Function));\n\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n\n expect(queryFn.mock.calls).toEqual([\n [mockContext],\n [mockContext],\n [mockContext],\n [mockContext],\n ]);\n expect(refetchInterval.mock.calls).toEqual([\n [mockQuery, 1],\n [mockQuery, 2],\n [mockQuery, 3],\n [mockQuery, 4],\n ]);\n expect(refetchInterval.mock.results).toEqual([\n {type: 'return', value: 1000},\n {type: 'return', value: 1000},\n {type: 'return', value: 1000},\n {type: 'return', value: false},\n ]);\n });\n\n it('should return the provided queryFn when it is not a function', () => {\n const {result} = renderHook(() => useRefetchInterval(undefined, skipToken));\n\n expect(result.current.queryFn).toBe(skipToken);\n });\n\n it('should memoize the wrapped functions', () => {\n const refetchInterval = jest.fn(() => 1000);\n const queryFn = jest.fn().mockResolvedValue({value: 42});\n\n const {result, rerender} = renderHook(() => useRefetchInterval(refetchInterval, queryFn));\n\n const firstRefetchInterval = result.current.refetchInterval;\n const firstQueryFn = result.current.queryFn;\n\n rerender();\n\n expect(result.current.refetchInterval).toBe(firstRefetchInterval);\n expect(result.current.queryFn).toBe(firstQueryFn);\n });\n\n it('should create new functions when dependencies change', () => {\n const refetchInterval1 = jest.fn(() => 1000);\n const queryFn1 = jest.fn().mockResolvedValue({value: 42});\n\n const {result, rerender} = renderHook(\n (props) => useRefetchInterval(props.refetchInterval, props.queryFn),\n {\n initialProps: {\n refetchInterval: refetchInterval1,\n queryFn: queryFn1,\n },\n },\n );\n\n const firstRefetchInterval = result.current.refetchInterval;\n const firstQueryFn = result.current.queryFn;\n\n const refetchInterval2 = jest.fn(() => 2000);\n const queryFn2 = jest.fn().mockResolvedValue({value: 100});\n\n rerender({\n refetchInterval: refetchInterval2,\n queryFn: queryFn2,\n });\n\n expect(result.current.refetchInterval).not.toBe(firstRefetchInterval);\n expect(result.current.queryFn).not.toBe(firstQueryFn);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,4 +4,4 @@ export interface UseRefetchIntervalResult<TQueryFnData = unknown, TError = Defau
|
|
|
4
4
|
refetchInterval?: number | false | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => number | false | undefined);
|
|
5
5
|
queryFn?: QueryFunction<TQueryFnData, TQueryKey, TPageParam> | SkipToken;
|
|
6
6
|
}
|
|
7
|
-
export declare const useRefetchInterval: <TQueryFnData = unknown, TError =
|
|
7
|
+
export declare const useRefetchInterval: <TQueryFnData = unknown, TError = DefaultError, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never>(refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>, queryFn?: QueryFunction<TQueryFnData, TQueryKey, TPageParam> | SkipToken) => UseRefetchIntervalResult<TQueryFnData, TError, TQueryData, TQueryKey, TPageParam>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { InfiniteQueryDataSource } from './types';
|
|
2
|
-
export declare const makeInfiniteQueryDataSource: <TParams, TRequest, TResponse, TData, TError
|
|
2
|
+
export declare const makeInfiniteQueryDataSource: <TParams, TRequest, TResponse, TData, TError>(config: Omit<InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>, "type">) => InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makeInfiniteQueryDataSource","exports","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {InfiniteQueryDataSource} from './types';\n\nexport const makeInfiniteQueryDataSource =
|
|
1
|
+
{"version":3,"names":["makeInfiniteQueryDataSource","exports","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {InfiniteQueryDataSource} from './types';\n\nexport const makeInfiniteQueryDataSource = <TParams, TRequest, TResponse, TData, TError>(\n config: Omit<InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>, 'type'>,\n): InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> => ({\n ...config,\n type: 'infinite',\n});\n"],"mappings":";;;;;;;;AAEO,IAAMA,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,GAAG,SAA9BA,2BAA2BA,CACpCE,MAA0F;EAAA,WAAAC,sBAAA,MAAAA,sBAAA,MAEvFD,MAAM;IACTE,IAAI,EAAE;EAAU;AAAA,CAClB","ignoreList":[]}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { DefaultError, InfiniteData, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryFunctionContext, QueryKey } from '@tanstack/react-query';
|
|
2
2
|
import type { Overwrite } from 'utility-types';
|
|
3
|
-
import type { ActualData,
|
|
3
|
+
import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
|
|
4
4
|
import type { QueryDataSourceContext } from '../../types/base';
|
|
5
5
|
import type { QueryDataAdditionalOptions } from '../../types/options';
|
|
6
6
|
export type InfiniteQueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = Overwrite<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, QueryDataAdditionalOptions<TQueryFnData, TError, InfiniteData<TQueryData, TPageParam>, TQueryKey>>;
|
|
7
|
-
export type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError
|
|
7
|
+
export type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, InfiniteQueryObserverExtendedOptions<NoInfer<TResponse>, NoInfer<TError>, InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>, NoInfer<TResponse>, DataSourceKey, Partial<NoInfer<TRequest>>>, ResultWrapper<InfiniteQueryObserverResult<InfiniteData<ActualData<NoInfer<TData>, NoInfer<TResponse>>, Partial<TRequest>>, NoInfer<TError>>, NoInfer<TRequest>, NoInfer<TResponse>, NoInfer<TData>, NoInfer<TError>>, QueryFunctionContext<DataSourceKey, Partial<NoInfer<TRequest>>>> & {
|
|
8
8
|
type: 'infinite';
|
|
9
|
-
next: (lastPage:
|
|
10
|
-
prev?: (firstPage:
|
|
9
|
+
next: (lastPage: NoInfer<TResponse>, allPages: NoInfer<TResponse>[]) => Partial<NoInfer<TRequest>> | null | undefined;
|
|
10
|
+
prev?: (firstPage: NoInfer<TResponse>, allPages: NoInfer<TResponse>[]) => Partial<NoInfer<TRequest>> | null | undefined;
|
|
11
11
|
};
|
|
12
|
-
export type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any
|
|
12
|
+
export type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;
|
|
13
13
|
export type AnyPageParam = Partial<any>;
|
|
14
|
-
type ResultWrapper<TResult, TRequest, TResponse, TData, TError
|
|
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
|
-
data: Array<FlatArray<Array<ActualData<
|
|
16
|
+
data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;
|
|
17
17
|
}> & {
|
|
18
18
|
originalStatus: TResult['status'];
|
|
19
19
|
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 {Overwrite} from 'utility-types';\n\nimport type {
|
|
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 {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> = Overwrite<\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":[]}
|
|
@@ -4,56 +4,45 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.composeOptions = void 0;
|
|
7
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
7
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
10
|
var _reactQuery = require("@tanstack/react-query");
|
|
11
11
|
var _core = require("../../../core");
|
|
12
|
-
var
|
|
12
|
+
var _formatNullableValue = require("../../utils/formatNullableValue");
|
|
13
|
+
var _parseNullableValue = require("../../utils/parseNullableValue");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
var EMPTY_OBJECT = {};
|
|
15
16
|
var composeOptions = exports.composeOptions = function composeOptions(context, dataSource, params, options) {
|
|
16
17
|
var transformParams = dataSource.transformParams,
|
|
17
|
-
transformError = dataSource.transformError,
|
|
18
18
|
transformResponse = dataSource.transformResponse,
|
|
19
19
|
next = dataSource.next,
|
|
20
20
|
prev = dataSource.prev;
|
|
21
21
|
var queryFn = /*#__PURE__*/function () {
|
|
22
|
-
var _ref = (0, _asyncToGenerator2.default)(
|
|
22
|
+
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(fetchContext) {
|
|
23
23
|
var request, paginatedRequest, response;
|
|
24
|
-
return
|
|
24
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
25
25
|
while (1) switch (_context.prev = _context.next) {
|
|
26
26
|
case 0:
|
|
27
27
|
request = transformParams ? transformParams(params) : params;
|
|
28
28
|
paginatedRequest = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, request), fetchContext.pageParam);
|
|
29
|
-
_context.
|
|
30
|
-
_context.next = 5;
|
|
29
|
+
_context.next = 4;
|
|
31
30
|
return dataSource.fetch(context, fetchContext, paginatedRequest);
|
|
32
|
-
case
|
|
31
|
+
case 4:
|
|
33
32
|
response = _context.sent;
|
|
34
|
-
return _context.abrupt("return", (0,
|
|
35
|
-
case
|
|
36
|
-
_context.prev = 9;
|
|
37
|
-
_context.t0 = _context["catch"](2);
|
|
38
|
-
if (transformError) {
|
|
39
|
-
_context.next = 13;
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
throw _context.t0;
|
|
43
|
-
case 13:
|
|
44
|
-
return _context.abrupt("return", (0, _utils.formatNullableValue)(transformError(_context.t0)));
|
|
45
|
-
case 14:
|
|
33
|
+
return _context.abrupt("return", (0, _formatNullableValue.formatNullableValue)(response));
|
|
34
|
+
case 6:
|
|
46
35
|
case "end":
|
|
47
36
|
return _context.stop();
|
|
48
37
|
}
|
|
49
|
-
}, _callee
|
|
38
|
+
}, _callee);
|
|
50
39
|
}));
|
|
51
40
|
return function queryFn(_x) {
|
|
52
41
|
return _ref.apply(this, arguments);
|
|
53
42
|
};
|
|
54
43
|
}();
|
|
55
44
|
var selectPage = function selectPage(response) {
|
|
56
|
-
var actualResponse = (0,
|
|
45
|
+
var actualResponse = (0, _parseNullableValue.parseNullableValue)(response);
|
|
57
46
|
return transformResponse ? transformResponse(actualResponse) : actualResponse;
|
|
58
47
|
};
|
|
59
48
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactQuery","require","_core","
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_core","_formatNullableValue","_parseNullableValue","_interopRequireDefault","e","__esModule","default","EMPTY_OBJECT","composeOptions","exports","context","dataSource","params","options","transformParams","transformResponse","next","prev","queryFn","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fetchContext","request","paginatedRequest","response","wrap","_callee$","_context","_objectSpread","pageParam","fetch","sent","abrupt","formatNullableValue","stop","_x","apply","arguments","selectPage","actualResponse","parseNullableValue","queryKey","composeFullKey","idle","skipToken","select","data","pages","map","initialPageParam","getNextPageParam","getPreviousPageParam"],"sources":["utils.ts"],"sourcesContent":["import {skipToken} from '@tanstack/react-query';\nimport type {InfiniteData, QueryFunctionContext} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\nimport type {nullSymbol, undefinedSymbol} from '../../constants';\nimport {formatNullableValue} from '../../utils/formatNullableValue';\nimport {parseNullableValue} from '../../utils/parseNullableValue';\n\nimport type {\n AnyInfiniteQueryDataSource,\n AnyPageParam,\n InfiniteQueryObserverExtendedOptions,\n} from './types';\n\nconst EMPTY_OBJECT = {};\n\nexport const composeOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, AnyPageParam>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n AnyPageParam\n> => {\n const {transformParams, transformResponse, next, prev} = dataSource;\n\n const queryFn = async (\n fetchContext: QueryFunctionContext<DataSourceKey, AnyPageParam>,\n ): Promise<DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol> => {\n const request = transformParams ? transformParams(params) : params;\n const paginatedRequest = {...request, ...fetchContext.pageParam};\n\n const response = await dataSource.fetch(context, fetchContext, paginatedRequest);\n\n return formatNullableValue(response);\n };\n\n const selectPage = (\n response: DataSourceResponse<TDataSource> | typeof undefinedSymbol | typeof nullSymbol,\n ): DataSourceData<TDataSource> => {\n const actualResponse = parseNullableValue(response) as DataSourceData<TDataSource>;\n\n return transformResponse ? transformResponse(actualResponse) : actualResponse;\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select: (data) => ({...data, pages: data.pages.map(selectPage)}),\n initialPageParam: EMPTY_OBJECT,\n getNextPageParam: next,\n getPreviousPageParam: prev,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAD,OAAA;AAWA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AAAiE,SAAAI,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQjE,IAAMG,YAAY,GAAG,CAAC,CAAC;AAEhB,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CACvBE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAQhD;EACD,IAAOC,eAAe,GAAmCH,UAAU,CAA5DG,eAAe;IAAEC,iBAAiB,GAAgBJ,UAAU,CAA3CI,iBAAiB;IAAEC,IAAI,GAAUL,UAAU,CAAxBK,IAAI;IAAEC,IAAI,GAAIN,UAAU,CAAlBM,IAAI;EAErD,IAAMC,OAAO;IAAA,IAAAC,IAAA,OAAAC,0BAAA,mBAAAC,4BAAA,IAAAC,IAAA,CAAG,SAAAC,QACZC,YAA+D;MAAA,IAAAC,OAAA,EAAAC,gBAAA,EAAAC,QAAA;MAAA,WAAAN,4BAAA,IAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAb,IAAA,GAAAa,QAAA,CAAAd,IAAA;UAAA;YAEzDS,OAAO,GAAGX,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAAM;YAC5Dc,gBAAgB,OAAAK,sBAAA,MAAAA,sBAAA,MAAON,OAAO,GAAKD,YAAY,CAACQ,SAAS;YAAAF,QAAA,CAAAd,IAAA;YAAA,OAExCL,UAAU,CAACsB,KAAK,CAACvB,OAAO,EAAEc,YAAY,EAAEE,gBAAgB,CAAC;UAAA;YAA1EC,QAAQ,GAAAG,QAAA,CAAAI,IAAA;YAAA,OAAAJ,QAAA,CAAAK,MAAA,WAEP,IAAAC,wCAAmB,EAACT,QAAQ,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAd,OAAA;IAAA,CACvC;IAAA,gBATKL,OAAOA,CAAAoB,EAAA;MAAA,OAAAnB,IAAA,CAAAoB,KAAA,OAAAC,SAAA;IAAA;EAAA,GASZ;EAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CACZd,QAAsF,EACxD;IAC9B,IAAMe,cAAc,GAAG,IAAAC,sCAAkB,EAAChB,QAAQ,CAAgC;IAElF,OAAOZ,iBAAiB,GAAGA,iBAAiB,CAAC2B,cAAc,CAAC,GAAGA,cAAc;EACjF,CAAC;EAED,WAAAX,sBAAA,MAAAA,sBAAA;IACIa,QAAQ,EAAE,IAAAC,oBAAc,EAAClC,UAAU,EAAEC,MAAM,CAAC;IAC5CM,OAAO,EAAEN,MAAM,KAAKkC,UAAI,GAAGC,qBAAS,GAAG7B,OAAO;IAC9C8B,MAAM,EAAE,SAARA,MAAMA,CAAGC,IAAI;MAAA,WAAAlB,sBAAA,MAAAA,sBAAA,MAAUkB,IAAI;QAAEC,KAAK,EAAED,IAAI,CAACC,KAAK,CAACC,GAAG,CAACV,UAAU;MAAC;IAAA,CAAE;IAChEW,gBAAgB,EAAE7C,YAAY;IAC9B8C,gBAAgB,EAAErC,IAAI;IACtBsC,oBAAoB,EAAErC;EAAI,GACvBN,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { PlainQueryDataSource } from './types';
|
|
2
|
-
export declare const makePlainQueryDataSource: <TParams, TRequest, TResponse, TData, TError
|
|
2
|
+
export declare const makePlainQueryDataSource: <TParams, TRequest, TResponse, TData, TError>(config: Omit<PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError>, "type">) => PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makePlainQueryDataSource","exports","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {PlainQueryDataSource} from './types';\n\nexport const makePlainQueryDataSource =
|
|
1
|
+
{"version":3,"names":["makePlainQueryDataSource","exports","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {PlainQueryDataSource} from './types';\n\nexport const makePlainQueryDataSource = <TParams, TRequest, TResponse, TData, TError>(\n config: Omit<PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError>, 'type'>,\n): PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> => ({\n ...config,\n type: 'plain',\n});\n"],"mappings":";;;;;;;;AAEO,IAAMA,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,SAA3BA,wBAAwBA,CACjCE,MAAuF;EAAA,WAAAC,sBAAA,MAAAA,sBAAA,MAEpFD,MAAM;IACTE,IAAI,EAAE;EAAO;AAAA,CACf","ignoreList":[]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { DefaultError, QueryFunctionContext, QueryKey, QueryObserverOptions, QueryObserverResult } from '@tanstack/react-query';
|
|
2
2
|
import type { Overwrite } from 'utility-types';
|
|
3
|
-
import type { ActualData,
|
|
3
|
+
import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
|
|
4
4
|
import type { QueryDataSourceContext } from '../../types/base';
|
|
5
5
|
import type { QueryDataAdditionalOptions } from '../../types/options';
|
|
6
6
|
export type QueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = Overwrite<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, QueryDataAdditionalOptions<TQueryFnData, TError, TQueryData, TQueryKey>>;
|
|
7
|
-
export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError
|
|
7
|
+
export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, QueryObserverExtendedOptions<NoInfer<TResponse>, NoInfer<TError>, ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TResponse>, DataSourceKey>, ResultWrapper<QueryObserverResult<ActualData<NoInfer<TData>, NoInfer<TResponse>>, NoInfer<TError>>, NoInfer<TResponse>, NoInfer<TData>, NoInfer<TError>>, QueryFunctionContext<DataSourceKey>> & {
|
|
8
8
|
type: 'plain';
|
|
9
9
|
};
|
|
10
|
-
export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any
|
|
11
|
-
type ResultWrapper<TResult, TResponse, TData, TError
|
|
10
|
+
export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;
|
|
11
|
+
type ResultWrapper<TResult, TResponse, TData, TError> = TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError> ? Overwrite<TResult, {
|
|
12
12
|
status: DataLoaderStatus;
|
|
13
13
|
}> & {
|
|
14
14
|
originalStatus: TResult['status'];
|
|
@@ -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 {Overwrite} from 'utility-types';\n\nimport type {
|
|
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 {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> = Overwrite<\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<TResult, {status: DataLoaderStatus}> & {originalStatus: TResult['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -5,50 +5,39 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.composeOptions = void 0;
|
|
7
7
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
8
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
10
|
var _reactQuery = require("@tanstack/react-query");
|
|
11
11
|
var _core = require("../../../core");
|
|
12
|
-
var
|
|
12
|
+
var _formatNullableValue = require("../../utils/formatNullableValue");
|
|
13
|
+
var _parseNullableValue = require("../../utils/parseNullableValue");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
var composeOptions = exports.composeOptions = function composeOptions(context, dataSource, params, options) {
|
|
15
16
|
var transformParams = dataSource.transformParams,
|
|
16
|
-
transformResponse = dataSource.transformResponse
|
|
17
|
-
transformError = dataSource.transformError;
|
|
17
|
+
transformResponse = dataSource.transformResponse;
|
|
18
18
|
var queryFn = /*#__PURE__*/function () {
|
|
19
|
-
var _ref = (0, _asyncToGenerator2.default)(
|
|
19
|
+
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(fetchContext) {
|
|
20
20
|
var response;
|
|
21
|
-
return
|
|
21
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
22
22
|
while (1) switch (_context.prev = _context.next) {
|
|
23
23
|
case 0:
|
|
24
|
-
_context.
|
|
25
|
-
_context.next = 3;
|
|
24
|
+
_context.next = 2;
|
|
26
25
|
return dataSource.fetch(context, fetchContext, transformParams ? transformParams(params) : params);
|
|
27
|
-
case
|
|
26
|
+
case 2:
|
|
28
27
|
response = _context.sent;
|
|
29
|
-
return _context.abrupt("return", (0,
|
|
30
|
-
case
|
|
31
|
-
_context.prev = 7;
|
|
32
|
-
_context.t0 = _context["catch"](0);
|
|
33
|
-
if (transformError) {
|
|
34
|
-
_context.next = 11;
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
throw _context.t0;
|
|
38
|
-
case 11:
|
|
39
|
-
return _context.abrupt("return", (0, _utils.formatNullableValue)(transformError(_context.t0)));
|
|
40
|
-
case 12:
|
|
28
|
+
return _context.abrupt("return", (0, _formatNullableValue.formatNullableValue)(response));
|
|
29
|
+
case 4:
|
|
41
30
|
case "end":
|
|
42
31
|
return _context.stop();
|
|
43
32
|
}
|
|
44
|
-
}, _callee
|
|
33
|
+
}, _callee);
|
|
45
34
|
}));
|
|
46
35
|
return function queryFn(_x) {
|
|
47
36
|
return _ref.apply(this, arguments);
|
|
48
37
|
};
|
|
49
38
|
}();
|
|
50
39
|
var select = function select(response) {
|
|
51
|
-
var actualResponse = (0,
|
|
40
|
+
var actualResponse = (0, _parseNullableValue.parseNullableValue)(response);
|
|
52
41
|
return transformResponse ? transformResponse(actualResponse) : actualResponse;
|
|
53
42
|
};
|
|
54
43
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({
|