@gravity-ui/data-source 0.6.1 → 0.8.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/README.md +752 -15
- package/build/cjs/core/index.d.ts +3 -1
- package/build/cjs/core/index.js +7 -0
- package/build/cjs/core/index.js.map +1 -1
- package/build/cjs/core/types/DataManager.d.ts +5 -0
- package/build/cjs/core/types/DataManager.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/types/Normalizer.d.ts +29 -0
- package/build/cjs/core/types/Normalizer.js +6 -0
- package/build/cjs/core/types/Normalizer.js.map +1 -0
- 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/DataManagerProvider.d.ts +7 -0
- package/build/cjs/react/DataManagerProvider.js +19 -0
- package/build/cjs/react/DataManagerProvider.js.map +1 -0
- package/build/cjs/react/__tests__/DataManagerContext.test.js +47 -0
- package/build/cjs/react/__tests__/DataManagerContext.test.js.map +1 -0
- package/build/cjs/react/__tests__/withDataManager.test.js +61 -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/index.d.ts +2 -0
- package/build/cjs/react/index.js +8 -0
- package/build/cjs/react/index.js.map +1 -1
- 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/ClientDataManager.d.ts +11 -2
- package/build/cjs/react-query/ClientDataManager.js +76 -9
- package/build/cjs/react-query/ClientDataManager.js.map +1 -1
- package/build/cjs/react-query/DataSourceProvider.d.ts +7 -0
- package/build/cjs/react-query/DataSourceProvider.js +35 -0
- package/build/cjs/react-query/DataSourceProvider.js.map +1 -0
- package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js +177 -0
- package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js +100 -0
- package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/subscriptions.test.js +1180 -0
- package/build/cjs/react-query/__tests__/subscriptions.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js +514 -0
- package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js +229 -0
- package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js.map +1 -0
- 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.refetch.test.js +195 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.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/hooks.js +4 -1
- package/build/cjs/react-query/impl/infinite/hooks.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/types.d.ts +9 -9
- 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/hooks.js +4 -1
- package/build/cjs/react-query/impl/plain/hooks.js.map +1 -1
- package/build/cjs/react-query/impl/plain/types.d.ts +6 -6
- 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/index.d.ts +2 -0
- package/build/cjs/react-query/index.js +7 -0
- package/build/cjs/react-query/index.js.map +1 -1
- package/build/cjs/react-query/types/normalizer.d.ts +21 -0
- package/build/cjs/react-query/types/normalizer.js +6 -0
- package/build/cjs/react-query/types/normalizer.js.map +1 -0
- package/build/cjs/react-query/types/options.d.ts +12 -0
- package/build/cjs/react-query/types/options.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/normalize.d.ts +22 -0
- package/build/cjs/react-query/utils/normalize.js +150 -0
- package/build/cjs/react-query/utils/normalize.js.map +1 -0
- 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/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 +11 -0
- package/build/cjs/react-query/utils/warnDisabledRefetch.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 +3 -1
- package/build/esm/core/index.js +1 -0
- package/build/esm/core/index.js.map +1 -1
- package/build/esm/core/types/DataManager.d.ts +5 -0
- package/build/esm/core/types/DataManager.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/types/Normalizer.d.ts +29 -0
- package/build/esm/core/types/Normalizer.js +2 -0
- package/build/esm/core/types/Normalizer.js.map +1 -0
- 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/DataManagerProvider.d.ts +7 -0
- package/build/esm/react/DataManagerProvider.js +12 -0
- package/build/esm/react/DataManagerProvider.js.map +1 -0
- package/build/esm/react/__tests__/DataManagerContext.test.js +44 -0
- package/build/esm/react/__tests__/DataManagerContext.test.js.map +1 -0
- package/build/esm/react/__tests__/withDataManager.test.js +58 -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/index.d.ts +2 -0
- package/build/esm/react/index.js +1 -0
- package/build/esm/react/index.js.map +1 -1
- 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/ClientDataManager.d.ts +11 -2
- package/build/esm/react-query/ClientDataManager.js +70 -3
- package/build/esm/react-query/ClientDataManager.js.map +1 -1
- package/build/esm/react-query/DataSourceProvider.d.ts +7 -0
- package/build/esm/react-query/DataSourceProvider.js +28 -0
- package/build/esm/react-query/DataSourceProvider.js.map +1 -0
- package/build/esm/react-query/__tests__/createQueryNormalizer.test.js +174 -0
- package/build/esm/react-query/__tests__/createQueryNormalizer.test.js.map +1 -0
- package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js +98 -0
- package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js.map +1 -0
- package/build/esm/react-query/__tests__/subscriptions.test.js +1176 -0
- package/build/esm/react-query/__tests__/subscriptions.test.js.map +1 -0
- package/build/esm/react-query/__tests__/threeLevelIntegration.test.js +511 -0
- package/build/esm/react-query/__tests__/threeLevelIntegration.test.js.map +1 -0
- package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js +227 -0
- package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js.map +1 -0
- 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.refetch.test.js +192 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.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/hooks.js +5 -2
- package/build/esm/react-query/impl/infinite/hooks.js.map +1 -1
- package/build/esm/react-query/impl/infinite/types.d.ts +9 -9
- 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/hooks.js +5 -2
- package/build/esm/react-query/impl/plain/hooks.js.map +1 -1
- package/build/esm/react-query/impl/plain/types.d.ts +6 -6
- 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/index.d.ts +2 -0
- package/build/esm/react-query/index.js +1 -0
- package/build/esm/react-query/index.js.map +1 -1
- package/build/esm/react-query/types/normalizer.d.ts +21 -0
- package/build/esm/react-query/types/normalizer.js +2 -0
- package/build/esm/react-query/types/normalizer.js.map +1 -0
- package/build/esm/react-query/types/options.d.ts +12 -0
- package/build/esm/react-query/types/options.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/normalize.d.ts +22 -0
- package/build/esm/react-query/utils/normalize.js +143 -0
- package/build/esm/react-query/utils/normalize.js.map +1 -0
- 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/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 +5 -0
- package/build/esm/react-query/utils/warnDisabledRefetch.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 +18 -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,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _getProgressiveRefetch = require("../getProgressiveRefetch");
|
|
4
|
+
describe('getProgressiveRefetch', function () {
|
|
5
|
+
it('should return a function', function () {
|
|
6
|
+
var refetchFn = (0, _getProgressiveRefetch.getProgressiveRefetch)({
|
|
7
|
+
minInterval: 1000,
|
|
8
|
+
maxInterval: 10000
|
|
9
|
+
});
|
|
10
|
+
expect(refetchFn).toEqual(expect.any(Function));
|
|
11
|
+
});
|
|
12
|
+
it('should return minInterval for the first call (count = 0)', function () {
|
|
13
|
+
var minInterval = 1000;
|
|
14
|
+
var maxInterval = 10000;
|
|
15
|
+
var refetchFn = (0, _getProgressiveRefetch.getProgressiveRefetch)({
|
|
16
|
+
minInterval: minInterval,
|
|
17
|
+
maxInterval: maxInterval
|
|
18
|
+
});
|
|
19
|
+
var result = refetchFn({}, 0);
|
|
20
|
+
expect(result).toBe(minInterval);
|
|
21
|
+
});
|
|
22
|
+
it('should increase interval by multiplier for each count', function () {
|
|
23
|
+
var minInterval = 1000;
|
|
24
|
+
var maxInterval = 10000;
|
|
25
|
+
var multiplier = 2;
|
|
26
|
+
var refetchFn = (0, _getProgressiveRefetch.getProgressiveRefetch)({
|
|
27
|
+
minInterval: minInterval,
|
|
28
|
+
maxInterval: maxInterval,
|
|
29
|
+
multiplier: multiplier
|
|
30
|
+
});
|
|
31
|
+
expect(refetchFn({}, 0)).toBe(1000);
|
|
32
|
+
expect(refetchFn({}, 1)).toBe(2000);
|
|
33
|
+
expect(refetchFn({}, 2)).toBe(4000);
|
|
34
|
+
expect(refetchFn({}, 3)).toBe(8000);
|
|
35
|
+
});
|
|
36
|
+
it('should not exceed maxInterval', function () {
|
|
37
|
+
var minInterval = 1000;
|
|
38
|
+
var maxInterval = 5000;
|
|
39
|
+
var multiplier = 2;
|
|
40
|
+
var refetchFn = (0, _getProgressiveRefetch.getProgressiveRefetch)({
|
|
41
|
+
minInterval: minInterval,
|
|
42
|
+
maxInterval: maxInterval,
|
|
43
|
+
multiplier: multiplier
|
|
44
|
+
});
|
|
45
|
+
expect(refetchFn({}, 0)).toBe(1000);
|
|
46
|
+
expect(refetchFn({}, 1)).toBe(2000);
|
|
47
|
+
expect(refetchFn({}, 2)).toBe(4000);
|
|
48
|
+
expect(refetchFn({}, 3)).toBe(5000);
|
|
49
|
+
expect(refetchFn({}, 4)).toBe(5000);
|
|
50
|
+
});
|
|
51
|
+
it('should use default multiplier (2) if not provided', function () {
|
|
52
|
+
var minInterval = 1000;
|
|
53
|
+
var maxInterval = 10000;
|
|
54
|
+
var refetchFn = (0, _getProgressiveRefetch.getProgressiveRefetch)({
|
|
55
|
+
minInterval: minInterval,
|
|
56
|
+
maxInterval: maxInterval
|
|
57
|
+
});
|
|
58
|
+
expect(refetchFn({}, 0)).toBe(1000);
|
|
59
|
+
expect(refetchFn({}, 1)).toBe(2000);
|
|
60
|
+
expect(refetchFn({}, 2)).toBe(4000);
|
|
61
|
+
});
|
|
62
|
+
it('should work with custom multiplier', function () {
|
|
63
|
+
var minInterval = 1000;
|
|
64
|
+
var maxInterval = 10000;
|
|
65
|
+
var multiplier = 1.5;
|
|
66
|
+
var refetchFn = (0, _getProgressiveRefetch.getProgressiveRefetch)({
|
|
67
|
+
minInterval: minInterval,
|
|
68
|
+
maxInterval: maxInterval,
|
|
69
|
+
multiplier: multiplier
|
|
70
|
+
});
|
|
71
|
+
expect(refetchFn({}, 0)).toBe(1000);
|
|
72
|
+
expect(refetchFn({}, 1)).toBe(1500);
|
|
73
|
+
expect(refetchFn({}, 2)).toBe(2250);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
// #sourceMappingURL=getProgressiveRefetch.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_getProgressiveRefetch","require","describe","it","refetchFn","getProgressiveRefetch","minInterval","maxInterval","expect","toEqual","any","Function","result","toBe","multiplier"],"sources":["getProgressiveRefetch.test.ts"],"sourcesContent":["import type {Query} from '@tanstack/react-query';\n\nimport {getProgressiveRefetch} from '../getProgressiveRefetch';\n\ndescribe('getProgressiveRefetch', () => {\n it('should return a function', () => {\n const refetchFn = getProgressiveRefetch({\n minInterval: 1000,\n maxInterval: 10000,\n });\n\n expect(refetchFn).toEqual(expect.any(Function));\n });\n\n it('should return minInterval for the first call (count = 0)', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n });\n\n const result = refetchFn({} as Query, 0);\n\n expect(result).toBe(minInterval);\n });\n\n it('should increase interval by multiplier for each count', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const multiplier = 2;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n multiplier,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(2000);\n expect(refetchFn({} as Query, 2)).toBe(4000);\n expect(refetchFn({} as Query, 3)).toBe(8000);\n });\n\n it('should not exceed maxInterval', () => {\n const minInterval = 1000;\n const maxInterval = 5000;\n const multiplier = 2;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n multiplier,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(2000);\n expect(refetchFn({} as Query, 2)).toBe(4000);\n expect(refetchFn({} as Query, 3)).toBe(5000);\n expect(refetchFn({} as Query, 4)).toBe(5000);\n });\n\n it('should use default multiplier (2) if not provided', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(2000);\n expect(refetchFn({} as Query, 2)).toBe(4000);\n });\n\n it('should work with custom multiplier', () => {\n const minInterval = 1000;\n const maxInterval = 10000;\n const multiplier = 1.5;\n const refetchFn = getProgressiveRefetch({\n minInterval,\n maxInterval,\n multiplier,\n });\n\n expect(refetchFn({} as Query, 0)).toBe(1000);\n expect(refetchFn({} as Query, 1)).toBe(1500);\n expect(refetchFn({} as Query, 2)).toBe(2250);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _normalizeStatus = require("../normalizeStatus");
|
|
4
|
+
describe('normalizeStatus', function () {
|
|
5
|
+
it('should return loading when status is pending and fetchStatus is fetching', function () {
|
|
6
|
+
var status = 'pending';
|
|
7
|
+
var fetchStatus = 'fetching';
|
|
8
|
+
var result = (0, _normalizeStatus.normalizeStatus)(status, fetchStatus);
|
|
9
|
+
expect(result).toBe('loading');
|
|
10
|
+
});
|
|
11
|
+
it('should return success when status is pending and fetchStatus is not fetching', function () {
|
|
12
|
+
var status = 'pending';
|
|
13
|
+
var fetchStatus = 'idle';
|
|
14
|
+
var result = (0, _normalizeStatus.normalizeStatus)(status, fetchStatus);
|
|
15
|
+
expect(result).toBe('success');
|
|
16
|
+
});
|
|
17
|
+
it('should return success when status is success', function () {
|
|
18
|
+
var status = 'success';
|
|
19
|
+
var fetchStatus = 'idle';
|
|
20
|
+
var result = (0, _normalizeStatus.normalizeStatus)(status, fetchStatus);
|
|
21
|
+
expect(result).toBe('success');
|
|
22
|
+
});
|
|
23
|
+
it('should return error when status is error', function () {
|
|
24
|
+
var status = 'error';
|
|
25
|
+
var fetchStatus = 'idle';
|
|
26
|
+
var result = (0, _normalizeStatus.normalizeStatus)(status, fetchStatus);
|
|
27
|
+
expect(result).toBe('error');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
// #sourceMappingURL=normalizeStatus.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_normalizeStatus","require","describe","it","status","fetchStatus","result","normalizeStatus","expect","toBe"],"sources":["normalizeStatus.test.ts"],"sourcesContent":["import type {FetchStatus, QueryStatus} from '@tanstack/react-query';\n\nimport {normalizeStatus} from '../normalizeStatus';\n\ndescribe('normalizeStatus', () => {\n it('should return loading when status is pending and fetchStatus is fetching', () => {\n const status: QueryStatus = 'pending';\n const fetchStatus: FetchStatus = 'fetching';\n\n const result = normalizeStatus(status, fetchStatus);\n\n expect(result).toBe('loading');\n });\n\n it('should return success when status is pending and fetchStatus is not fetching', () => {\n const status: QueryStatus = 'pending';\n const fetchStatus: FetchStatus = 'idle';\n\n const result = normalizeStatus(status, fetchStatus);\n\n expect(result).toBe('success');\n });\n\n it('should return success when status is success', () => {\n const status: QueryStatus = 'success';\n const fetchStatus: FetchStatus = 'idle';\n\n const result = normalizeStatus(status, fetchStatus);\n\n expect(result).toBe('success');\n });\n\n it('should return error when status is error', () => {\n const status: QueryStatus = 'error';\n const fetchStatus: FetchStatus = 'idle';\n\n const result = normalizeStatus(status, fetchStatus);\n\n expect(result).toBe('error');\n });\n});\n"],"mappings":";;AAEA,IAAAA,gBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,iBAAiB,EAAE,YAAM;EAC9BC,EAAE,CAAC,0EAA0E,EAAE,YAAM;IACjF,IAAMC,MAAmB,GAAG,SAAS;IACrC,IAAMC,WAAwB,GAAG,UAAU;IAE3C,IAAMC,MAAM,GAAG,IAAAC,gCAAe,EAACH,MAAM,EAAEC,WAAW,CAAC;IAEnDG,MAAM,CAACF,MAAM,CAAC,CAACG,IAAI,CAAC,SAAS,CAAC;EAClC,CAAC,CAAC;EAEFN,EAAE,CAAC,8EAA8E,EAAE,YAAM;IACrF,IAAMC,MAAmB,GAAG,SAAS;IACrC,IAAMC,WAAwB,GAAG,MAAM;IAEvC,IAAMC,MAAM,GAAG,IAAAC,gCAAe,EAACH,MAAM,EAAEC,WAAW,CAAC;IAEnDG,MAAM,CAACF,MAAM,CAAC,CAACG,IAAI,CAAC,SAAS,CAAC;EAClC,CAAC,CAAC;EAEFN,EAAE,CAAC,8CAA8C,EAAE,YAAM;IACrD,IAAMC,MAAmB,GAAG,SAAS;IACrC,IAAMC,WAAwB,GAAG,MAAM;IAEvC,IAAMC,MAAM,GAAG,IAAAC,gCAAe,EAACH,MAAM,EAAEC,WAAW,CAAC;IAEnDG,MAAM,CAACF,MAAM,CAAC,CAACG,IAAI,CAAC,SAAS,CAAC;EAClC,CAAC,CAAC;EAEFN,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACjD,IAAMC,MAAmB,GAAG,OAAO;IACnC,IAAMC,WAAwB,GAAG,MAAM;IAEvC,IAAMC,MAAM,GAAG,IAAAC,gCAAe,EAACH,MAAM,EAAEC,WAAW,CAAC;IAEnDG,MAAM,CAACF,MAAM,CAAC,CAACG,IAAI,CAAC,OAAO,CAAC;EAChC,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _notReachable = require("../notReachable");
|
|
4
|
+
describe('notReachable', function () {
|
|
5
|
+
it('should throw an error with default message', function () {
|
|
6
|
+
var callNotReachable = function callNotReachable() {
|
|
7
|
+
(0, _notReachable.notReachable)('test');
|
|
8
|
+
};
|
|
9
|
+
expect(callNotReachable).toThrow('Not reachable state: test');
|
|
10
|
+
});
|
|
11
|
+
it('should throw an error with custom message', function () {
|
|
12
|
+
var callNotReachable = function callNotReachable() {
|
|
13
|
+
(0, _notReachable.notReachable)('test', 'Custom error message');
|
|
14
|
+
};
|
|
15
|
+
expect(callNotReachable).toThrow('Custom error message');
|
|
16
|
+
});
|
|
17
|
+
it('should be used for exhaustive type checking', function () {
|
|
18
|
+
var getNumberName = function getNumberName(num) {
|
|
19
|
+
switch (num) {
|
|
20
|
+
case 1:
|
|
21
|
+
return 'one';
|
|
22
|
+
case 2:
|
|
23
|
+
return 'two';
|
|
24
|
+
case 3:
|
|
25
|
+
return 'three';
|
|
26
|
+
default:
|
|
27
|
+
return (0, _notReachable.notReachable)(num);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
expect(getNumberName(1)).toBe('one');
|
|
31
|
+
expect(getNumberName(2)).toBe('two');
|
|
32
|
+
expect(getNumberName(3)).toBe('three');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
// #sourceMappingURL=notReachable.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_notReachable","require","describe","it","callNotReachable","notReachable","expect","toThrow","getNumberName","num","toBe"],"sources":["notReachable.test.ts"],"sourcesContent":["import {notReachable} from '../notReachable';\n\ndescribe('notReachable', () => {\n it('should throw an error with default message', () => {\n const callNotReachable = () => {\n notReachable('test' as never);\n };\n\n expect(callNotReachable).toThrow('Not reachable state: test');\n });\n\n it('should throw an error with custom message', () => {\n const callNotReachable = () => {\n notReachable('test' as never, 'Custom error message');\n };\n\n expect(callNotReachable).toThrow('Custom error message');\n });\n\n it('should be used for exhaustive type checking', () => {\n const getNumberName = (num: 1 | 2 | 3): string => {\n switch (num) {\n case 1:\n return 'one';\n case 2:\n return 'two';\n case 3:\n return 'three';\n default:\n return notReachable(num);\n }\n };\n\n expect(getNumberName(1)).toBe('one');\n expect(getNumberName(2)).toBe('two');\n expect(getNumberName(3)).toBe('three');\n });\n});\n"],"mappings":";;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,cAAc,EAAE,YAAM;EAC3BC,EAAE,CAAC,4CAA4C,EAAE,YAAM;IACnD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;MAC3B,IAAAC,0BAAY,EAAC,MAAe,CAAC;IACjC,CAAC;IAEDC,MAAM,CAACF,gBAAgB,CAAC,CAACG,OAAO,CAAC,2BAA2B,CAAC;EACjE,CAAC,CAAC;EAEFJ,EAAE,CAAC,2CAA2C,EAAE,YAAM;IAClD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;MAC3B,IAAAC,0BAAY,EAAC,MAAM,EAAW,sBAAsB,CAAC;IACzD,CAAC;IAEDC,MAAM,CAACF,gBAAgB,CAAC,CAACG,OAAO,CAAC,sBAAsB,CAAC;EAC5D,CAAC,CAAC;EAEFJ,EAAE,CAAC,6CAA6C,EAAE,YAAM;IACpD,IAAMK,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,GAAc,EAAa;MAC9C,QAAQA,GAAG;QACP,KAAK,CAAC;UACF,OAAO,KAAK;QAChB,KAAK,CAAC;UACF,OAAO,KAAK;QAChB,KAAK,CAAC;UACF,OAAO,OAAO;QAClB;UACI,OAAO,IAAAJ,0BAAY,EAACI,GAAG,CAAC;MAChC;IACJ,CAAC;IAEDH,MAAM,CAACE,aAAa,CAAC,CAAC,CAAC,CAAC,CAACE,IAAI,CAAC,KAAK,CAAC;IACpCJ,MAAM,CAACE,aAAa,CAAC,CAAC,CAAC,CAAC,CAACE,IAAI,CAAC,KAAK,CAAC;IACpCJ,MAAM,CAACE,aAAa,CAAC,CAAC,CAAC,CAAC,CAACE,IAAI,CAAC,OAAO,CAAC;EAC1C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _constants = require("../../constants");
|
|
4
|
+
var _parseNullableValue = require("../parseNullableValue");
|
|
5
|
+
describe('parseNullableValue', function () {
|
|
6
|
+
it('should return undefined for undefinedSymbol', function () {
|
|
7
|
+
expect((0, _parseNullableValue.parseNullableValue)(_constants.undefinedSymbol)).toBeUndefined();
|
|
8
|
+
});
|
|
9
|
+
it('should return null for nullSymbol', function () {
|
|
10
|
+
expect((0, _parseNullableValue.parseNullableValue)(_constants.nullSymbol)).toBeNull();
|
|
11
|
+
});
|
|
12
|
+
it('should return the value for non-symbol values', function () {
|
|
13
|
+
expect((0, _parseNullableValue.parseNullableValue)(42)).toBe(42);
|
|
14
|
+
expect((0, _parseNullableValue.parseNullableValue)(0)).toBe(0);
|
|
15
|
+
expect((0, _parseNullableValue.parseNullableValue)('test')).toBe('test');
|
|
16
|
+
expect((0, _parseNullableValue.parseNullableValue)('')).toBe('');
|
|
17
|
+
expect((0, _parseNullableValue.parseNullableValue)(true)).toBe(true);
|
|
18
|
+
expect((0, _parseNullableValue.parseNullableValue)(false)).toBe(false);
|
|
19
|
+
var obj = {
|
|
20
|
+
a: 1
|
|
21
|
+
};
|
|
22
|
+
expect((0, _parseNullableValue.parseNullableValue)(obj)).toBe(obj);
|
|
23
|
+
var arr = [1, 2, 3];
|
|
24
|
+
expect((0, _parseNullableValue.parseNullableValue)(arr)).toBe(arr);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
// #sourceMappingURL=parseNullableValue.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_constants","require","_parseNullableValue","describe","it","expect","parseNullableValue","undefinedSymbol","toBeUndefined","nullSymbol","toBeNull","toBe","obj","a","arr"],"sources":["parseNullableValue.test.ts"],"sourcesContent":["import {nullSymbol, undefinedSymbol} from '../../constants';\nimport {parseNullableValue} from '../parseNullableValue';\n\ndescribe('parseNullableValue', () => {\n it('should return undefined for undefinedSymbol', () => {\n expect(parseNullableValue(undefinedSymbol)).toBeUndefined();\n });\n\n it('should return null for nullSymbol', () => {\n expect(parseNullableValue(nullSymbol)).toBeNull();\n });\n\n it('should return the value for non-symbol values', () => {\n expect(parseNullableValue(42)).toBe(42);\n expect(parseNullableValue(0)).toBe(0);\n expect(parseNullableValue('test')).toBe('test');\n expect(parseNullableValue('')).toBe('');\n expect(parseNullableValue(true)).toBe(true);\n expect(parseNullableValue(false)).toBe(false);\n\n const obj = {a: 1};\n expect(parseNullableValue(obj)).toBe(obj);\n\n const arr = [1, 2, 3];\n expect(parseNullableValue(arr)).toBe(arr);\n });\n});\n"],"mappings":";;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AAEAE,QAAQ,CAAC,oBAAoB,EAAE,YAAM;EACjCC,EAAE,CAAC,6CAA6C,EAAE,YAAM;IACpDC,MAAM,CAAC,IAAAC,sCAAkB,EAACC,0BAAe,CAAC,CAAC,CAACC,aAAa,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEFJ,EAAE,CAAC,mCAAmC,EAAE,YAAM;IAC1CC,MAAM,CAAC,IAAAC,sCAAkB,EAACG,qBAAU,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFN,EAAE,CAAC,+CAA+C,EAAE,YAAM;IACtDC,MAAM,CAAC,IAAAC,sCAAkB,EAAC,EAAE,CAAC,CAAC,CAACK,IAAI,CAAC,EAAE,CAAC;IACvCN,MAAM,CAAC,IAAAC,sCAAkB,EAAC,CAAC,CAAC,CAAC,CAACK,IAAI,CAAC,CAAC,CAAC;IACrCN,MAAM,CAAC,IAAAC,sCAAkB,EAAC,MAAM,CAAC,CAAC,CAACK,IAAI,CAAC,MAAM,CAAC;IAC/CN,MAAM,CAAC,IAAAC,sCAAkB,EAAC,EAAE,CAAC,CAAC,CAACK,IAAI,CAAC,EAAE,CAAC;IACvCN,MAAM,CAAC,IAAAC,sCAAkB,EAAC,IAAI,CAAC,CAAC,CAACK,IAAI,CAAC,IAAI,CAAC;IAC3CN,MAAM,CAAC,IAAAC,sCAAkB,EAAC,KAAK,CAAC,CAAC,CAACK,IAAI,CAAC,KAAK,CAAC;IAE7C,IAAMC,GAAG,GAAG;MAACC,CAAC,EAAE;IAAC,CAAC;IAClBR,MAAM,CAAC,IAAAC,sCAAkB,EAACM,GAAG,CAAC,CAAC,CAACD,IAAI,CAACC,GAAG,CAAC;IAEzC,IAAME,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrBT,MAAM,CAAC,IAAAC,sCAAkB,EAACQ,GAAG,CAAC,CAAC,CAACH,IAAI,CAACG,GAAG,CAAC;EAC7C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.formatNullableValue = void 0;
|
|
7
|
+
var _constants = require("../constants");
|
|
8
|
+
var formatNullableValue = exports.formatNullableValue = function formatNullableValue(value) {
|
|
9
|
+
if (value === undefined) {
|
|
10
|
+
return _constants.undefinedSymbol;
|
|
11
|
+
}
|
|
12
|
+
if (value === null) {
|
|
13
|
+
return _constants.nullSymbol;
|
|
14
|
+
}
|
|
15
|
+
return value;
|
|
16
|
+
};
|
|
17
|
+
// #sourceMappingURL=formatNullableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_constants","require","formatNullableValue","exports","value","undefined","undefinedSymbol","nullSymbol"],"sources":["formatNullableValue.ts"],"sourcesContent":["import {nullSymbol, undefinedSymbol} from '../constants';\n\nexport const formatNullableValue = <T>(\n value: T | undefined | null,\n): T | typeof undefinedSymbol | typeof nullSymbol => {\n if (value === undefined) {\n return undefinedSymbol;\n }\n\n if (value === null) {\n return nullSymbol;\n }\n\n return value;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,IAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,SAAtBA,mBAAmBA,CAC5BE,KAA2B,EACsB;EACjD,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACrB,OAAOC,0BAAe;EAC1B;EAEA,IAAIF,KAAK,KAAK,IAAI,EAAE;IAChB,OAAOG,qBAAU;EACrB;EAEA,OAAOH,KAAK;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { QueryKey } from '@tanstack/react-query';
|
|
1
|
+
import type { DefaultError, QueryKey } from '@tanstack/react-query';
|
|
2
2
|
import type { RefetchIntervalFunction } from '../types/refetch-interval';
|
|
3
3
|
export interface ProgressiveRefetchOptions {
|
|
4
4
|
minInterval: number;
|
|
5
5
|
maxInterval: number;
|
|
6
6
|
multiplier?: number;
|
|
7
7
|
}
|
|
8
|
-
export declare const getProgressiveRefetch: <TQueryFnData = unknown, TError =
|
|
8
|
+
export declare const getProgressiveRefetch: <TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>({ minInterval, maxInterval, multiplier, }: ProgressiveRefetchOptions) => RefetchIntervalFunction<TQueryFnData, TError, TData, TQueryKey>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Data } from '@normy/core';
|
|
2
|
+
import type { QueryClient } from '@tanstack/react-query';
|
|
3
|
+
import type { Normalizer, NormalizerConfig } from '../../core/types/Normalizer';
|
|
4
|
+
export declare const createQueryNormalizer: (normalizer: Normalizer | undefined, queryClient: QueryClient, config: boolean | NormalizerConfig | undefined, optimisticUpdate: (mutationData: Data) => void, invalidateData: (data: Data) => void) => {
|
|
5
|
+
/** Get normalized data */
|
|
6
|
+
getNormalizedData: () => import("@normy/core/types/types").NormalizedData;
|
|
7
|
+
/** Set normalized data (for manual updates, WebSocket, etc.) */
|
|
8
|
+
setNormalizedData: (data: Data) => void;
|
|
9
|
+
/** Clear all normalized data */
|
|
10
|
+
clear: () => void;
|
|
11
|
+
/** Get object by ID */
|
|
12
|
+
getObjectById: <T extends Data>(id: string, exampleObject?: T) => T | undefined;
|
|
13
|
+
/** Get query fragment */
|
|
14
|
+
getQueryFragment: <T extends Data>(fragment: Data, exampleObject?: T) => T | undefined;
|
|
15
|
+
/** Get dependent queries by data */
|
|
16
|
+
getDependentQueries: (mutationData: Data) => (readonly unknown[])[];
|
|
17
|
+
/** Get dependent queries by IDs */
|
|
18
|
+
getDependentQueriesByIds: (ids: ReadonlyArray<string>) => (readonly unknown[])[];
|
|
19
|
+
/** Subscribe to QueryCache changes */
|
|
20
|
+
subscribe: () => void;
|
|
21
|
+
unsubscribe: () => void;
|
|
22
|
+
} | undefined;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createQueryNormalizer = void 0;
|
|
7
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
var shouldInvalidateData = function shouldInvalidateData(globalConfig, mutationConfig) {
|
|
10
|
+
if (mutationConfig === false) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (!globalConfig) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
};
|
|
18
|
+
var shouldUpdateOptimistically = function shouldUpdateOptimistically(globalConfig, mutationConfig) {
|
|
19
|
+
if (mutationConfig === false) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if (typeof mutationConfig === 'boolean' && mutationConfig || (0, _typeof2.default)(mutationConfig) === 'object' && mutationConfig) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if (!globalConfig) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
};
|
|
30
|
+
var getOptimisticProps = function getOptimisticProps(globalConfig, mutationConfig) {
|
|
31
|
+
var globalAutoRollback = (0, _typeof2.default)(globalConfig) === 'object' ? globalConfig.autoCalculateRollback : undefined;
|
|
32
|
+
var mutationAutoRollback = (0, _typeof2.default)(mutationConfig) === 'object' ? mutationConfig.autoCalculateRollback : undefined;
|
|
33
|
+
var globalDevLogging = (0, _typeof2.default)(globalConfig) === 'object' ? globalConfig.devLogging : undefined;
|
|
34
|
+
var mutationDevLogging = (0, _typeof2.default)(mutationConfig) === 'object' ? mutationConfig.devLogging : undefined;
|
|
35
|
+
return {
|
|
36
|
+
autoRollback: mutationAutoRollback !== null && mutationAutoRollback !== void 0 ? mutationAutoRollback : globalAutoRollback,
|
|
37
|
+
devLogging: mutationDevLogging !== null && mutationDevLogging !== void 0 ? mutationDevLogging : globalDevLogging
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
var createQueryNormalizer = exports.createQueryNormalizer = function createQueryNormalizer(normalizer, queryClient, config, optimisticUpdate, invalidateData) {
|
|
41
|
+
if (!normalizer || !config) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
var globalOptimistic = (0, _typeof2.default)(config) === 'object' && 'optimistic' in config ? config.optimistic : false;
|
|
45
|
+
var globalInvalidateData = (0, _typeof2.default)(config) === 'object' && 'invalidate' in config ? config.invalidate : false;
|
|
46
|
+
var unsubscribeQueryCache = null;
|
|
47
|
+
var unsubscribeMutationCache = null;
|
|
48
|
+
return {
|
|
49
|
+
/** Get normalized data */
|
|
50
|
+
getNormalizedData: normalizer.getNormalizedData,
|
|
51
|
+
/** Set normalized data (for manual updates, WebSocket, etc.) */
|
|
52
|
+
setNormalizedData: function setNormalizedData(data) {
|
|
53
|
+
return optimisticUpdate(data);
|
|
54
|
+
},
|
|
55
|
+
/** Clear all normalized data */
|
|
56
|
+
clear: normalizer.clearNormalizedData,
|
|
57
|
+
/** Get object by ID */
|
|
58
|
+
getObjectById: normalizer.getObjectById,
|
|
59
|
+
/** Get query fragment */
|
|
60
|
+
getQueryFragment: normalizer.getQueryFragment,
|
|
61
|
+
/** Get dependent queries by data */
|
|
62
|
+
getDependentQueries: function getDependentQueries(mutationData) {
|
|
63
|
+
return normalizer.getDependentQueries(mutationData).map(function (key) {
|
|
64
|
+
return JSON.parse(key);
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
/** Get dependent queries by IDs */
|
|
68
|
+
getDependentQueriesByIds: function getDependentQueriesByIds(ids) {
|
|
69
|
+
return normalizer.getDependentQueriesByIds(ids).map(function (key) {
|
|
70
|
+
return JSON.parse(key);
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
/** Subscribe to QueryCache changes */
|
|
74
|
+
subscribe: function subscribe() {
|
|
75
|
+
// Subscribe to QueryCache (query additions/updates/removals)
|
|
76
|
+
unsubscribeQueryCache = queryClient.getQueryCache().subscribe(function (event) {
|
|
77
|
+
var _queryOptions$normali;
|
|
78
|
+
var queryKeyStr = JSON.stringify(event.query.queryKey);
|
|
79
|
+
if (event.type === 'removed') {
|
|
80
|
+
normalizer.removeQuery(queryKeyStr);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Check if the query should be normalized
|
|
85
|
+
// At this point options are already merged (DataSource + Hook)
|
|
86
|
+
var queryOptions = event.query.options;
|
|
87
|
+
var queryNormalize = (_queryOptions$normali = queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.normalize) !== null && _queryOptions$normali !== void 0 ? _queryOptions$normali : true;
|
|
88
|
+
if (!queryNormalize) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (event.type === 'added' && event.query.state.data !== undefined) {
|
|
92
|
+
normalizer.setQuery(queryKeyStr, event.query.state.data);
|
|
93
|
+
} else if (event.type === 'updated' && event.action.type === 'success' && event.action.data !== undefined) {
|
|
94
|
+
normalizer.setQuery(queryKeyStr, event.action.data);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// Subscribe to MutationCache for normalization + optimistic updates
|
|
99
|
+
unsubscribeMutationCache = queryClient.getMutationCache().subscribe(function (event) {
|
|
100
|
+
var _event$mutation;
|
|
101
|
+
// Cast to extended type with additional configs, if available
|
|
102
|
+
var mutationOptions = (_event$mutation = event.mutation) === null || _event$mutation === void 0 ? void 0 : _event$mutation.options;
|
|
103
|
+
var mutationQueryNormalize = mutationOptions === null || mutationOptions === void 0 ? void 0 : mutationOptions.normalize;
|
|
104
|
+
var mutationQueryOptimistic = mutationOptions === null || mutationOptions === void 0 ? void 0 : mutationOptions.optimistic;
|
|
105
|
+
var mutationQueryInvalidateData = mutationOptions === null || mutationOptions === void 0 ? void 0 : mutationOptions.invalidate;
|
|
106
|
+
if (shouldInvalidateData(globalInvalidateData, mutationQueryInvalidateData)) {
|
|
107
|
+
if (event.type === 'updated' && event.action.type === 'success' && event.action.data) {
|
|
108
|
+
invalidateData(event.action.data);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (!mutationQueryNormalize || !shouldUpdateOptimistically(globalOptimistic, mutationQueryOptimistic)) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
var _getOptimisticProps = getOptimisticProps(globalOptimistic, mutationQueryOptimistic),
|
|
115
|
+
autoRollback = _getOptimisticProps.autoRollback,
|
|
116
|
+
devLogging = _getOptimisticProps.devLogging;
|
|
117
|
+
if (event.type === 'updated' && event.action.type === 'success' && event.action.data) {
|
|
118
|
+
optimisticUpdate(event.action.data);
|
|
119
|
+
} else if (event.type === 'updated' && event.action.type === 'pending') {
|
|
120
|
+
var context = event.mutation.state.context;
|
|
121
|
+
if (context !== null && context !== void 0 && context.optimisticData) {
|
|
122
|
+
if (!context.rollbackData && mutationQueryOptimistic && autoRollback !== false) {
|
|
123
|
+
context.rollbackData = normalizer.getCurrentData(context.optimisticData);
|
|
124
|
+
if (devLogging) {
|
|
125
|
+
console.log('[OptimisticUpdate] Auto-calculated rollbackData:', context.rollbackData);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
optimisticUpdate(context.optimisticData);
|
|
129
|
+
}
|
|
130
|
+
} else if (event.type === 'updated' && event.action.type === 'error') {
|
|
131
|
+
var _context = event.mutation.state.context;
|
|
132
|
+
if (_context !== null && _context !== void 0 && _context.rollbackData) {
|
|
133
|
+
if (devLogging) {
|
|
134
|
+
console.log('[OptimisticUpdate] Rolling back changes');
|
|
135
|
+
}
|
|
136
|
+
optimisticUpdate(_context.rollbackData);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
},
|
|
141
|
+
unsubscribe: function unsubscribe() {
|
|
142
|
+
var _unsubscribeQueryCach, _unsubscribeMutationC;
|
|
143
|
+
(_unsubscribeQueryCach = unsubscribeQueryCache) === null || _unsubscribeQueryCach === void 0 || _unsubscribeQueryCach();
|
|
144
|
+
(_unsubscribeMutationC = unsubscribeMutationCache) === null || _unsubscribeMutationC === void 0 || _unsubscribeMutationC();
|
|
145
|
+
unsubscribeQueryCache = null;
|
|
146
|
+
unsubscribeMutationCache = null;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
// #sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["shouldInvalidateData","globalConfig","mutationConfig","shouldUpdateOptimistically","_typeof","getOptimisticProps","globalAutoRollback","autoCalculateRollback","undefined","mutationAutoRollback","globalDevLogging","devLogging","mutationDevLogging","autoRollback","createQueryNormalizer","exports","normalizer","queryClient","config","optimisticUpdate","invalidateData","globalOptimistic","optimistic","globalInvalidateData","invalidate","unsubscribeQueryCache","unsubscribeMutationCache","getNormalizedData","setNormalizedData","data","clear","clearNormalizedData","getObjectById","getQueryFragment","getDependentQueries","mutationData","map","key","JSON","parse","getDependentQueriesByIds","ids","subscribe","getQueryCache","event","_queryOptions$normali","queryKeyStr","stringify","query","queryKey","type","removeQuery","queryOptions","options","queryNormalize","normalize","state","setQuery","action","getMutationCache","_event$mutation","mutationOptions","mutation","mutationQueryNormalize","mutationQueryOptimistic","mutationQueryInvalidateData","_getOptimisticProps","context","optimisticData","rollbackData","getCurrentData","console","log","_context","unsubscribe","_unsubscribeQueryCach","_unsubscribeMutationC"],"sources":["normalize.ts"],"sourcesContent":["import type {Data} from '@normy/core';\nimport type {QueryClient, QueryKey} from '@tanstack/react-query';\n\nimport type {Normalizer, NormalizerConfig, OptimisticConfig} from '../../core/types/Normalizer';\nimport type {QueryDataAdditionalOptions} from '../types/options';\n\ninterface QueryNormalizeOptions {\n normalize?: boolean;\n optimistic?: boolean | OptimisticConfig;\n invalidate?: boolean;\n}\n\nconst shouldInvalidateData = (globalConfig?: boolean, mutationConfig?: boolean): boolean => {\n if (mutationConfig === false) {\n return false;\n }\n\n if (!globalConfig) {\n return false;\n }\n\n return true;\n};\n\nconst shouldUpdateOptimistically = (\n globalConfig?: boolean | OptimisticConfig,\n mutationConfig?: boolean | OptimisticConfig,\n): boolean => {\n if (mutationConfig === false) {\n return false;\n }\n\n if (\n (typeof mutationConfig === 'boolean' && mutationConfig) ||\n (typeof mutationConfig === 'object' && mutationConfig)\n ) {\n return true;\n }\n\n if (!globalConfig) {\n return false;\n }\n\n return true;\n};\n\nconst getOptimisticProps = (\n globalConfig?: boolean | OptimisticConfig,\n mutationConfig?: boolean | OptimisticConfig,\n) => {\n const globalAutoRollback =\n typeof globalConfig === 'object' ? globalConfig.autoCalculateRollback : undefined;\n const mutationAutoRollback =\n typeof mutationConfig === 'object' ? mutationConfig.autoCalculateRollback : undefined;\n const globalDevLogging = typeof globalConfig === 'object' ? globalConfig.devLogging : undefined;\n const mutationDevLogging =\n typeof mutationConfig === 'object' ? mutationConfig.devLogging : undefined;\n\n return {\n autoRollback: mutationAutoRollback ?? globalAutoRollback,\n devLogging: mutationDevLogging ?? globalDevLogging,\n };\n};\n\nexport const createQueryNormalizer = (\n normalizer: Normalizer | undefined,\n queryClient: QueryClient,\n config: boolean | NormalizerConfig | undefined,\n optimisticUpdate: (mutationData: Data) => void,\n invalidateData: (data: Data) => void,\n) => {\n if (!normalizer || !config) {\n return undefined;\n }\n\n const globalOptimistic =\n typeof config === 'object' && 'optimistic' in config ? config.optimistic : false;\n\n const globalInvalidateData =\n typeof config === 'object' && 'invalidate' in config ? config.invalidate : false;\n\n let unsubscribeQueryCache: (() => void) | null = null;\n let unsubscribeMutationCache: (() => void) | null = null;\n\n return {\n /** Get normalized data */\n getNormalizedData: normalizer.getNormalizedData,\n /** Set normalized data (for manual updates, WebSocket, etc.) */\n setNormalizedData: (data: Data) => optimisticUpdate(data),\n /** Clear all normalized data */\n clear: normalizer.clearNormalizedData,\n /** Get object by ID */\n getObjectById: normalizer.getObjectById,\n /** Get query fragment */\n getQueryFragment: normalizer.getQueryFragment,\n /** Get dependent queries by data */\n getDependentQueries: (mutationData: Data) =>\n normalizer.getDependentQueries(mutationData).map((key) => JSON.parse(key) as QueryKey),\n /** Get dependent queries by IDs */\n getDependentQueriesByIds: (ids: ReadonlyArray<string>) =>\n normalizer.getDependentQueriesByIds(ids).map((key) => JSON.parse(key) as QueryKey),\n /** Subscribe to QueryCache changes */\n subscribe: () => {\n // Subscribe to QueryCache (query additions/updates/removals)\n unsubscribeQueryCache = queryClient.getQueryCache().subscribe((event) => {\n const queryKeyStr = JSON.stringify(event.query.queryKey);\n\n if (event.type === 'removed') {\n normalizer.removeQuery(queryKeyStr);\n\n return;\n }\n\n // Check if the query should be normalized\n // At this point options are already merged (DataSource + Hook)\n const queryOptions = event.query.options as QueryDataAdditionalOptions;\n\n const queryNormalize = queryOptions?.normalize ?? true;\n\n if (!queryNormalize) {\n return;\n }\n\n if (event.type === 'added' && event.query.state.data !== undefined) {\n normalizer.setQuery(queryKeyStr, event.query.state.data as Data);\n } else if (\n event.type === 'updated' &&\n event.action.type === 'success' &&\n event.action.data !== undefined\n ) {\n normalizer.setQuery(queryKeyStr, event.action.data as Data);\n }\n });\n\n // Subscribe to MutationCache for normalization + optimistic updates\n unsubscribeMutationCache = queryClient.getMutationCache().subscribe((event) => {\n // Cast to extended type with additional configs, if available\n const mutationOptions = event.mutation?.options as\n | QueryNormalizeOptions\n | undefined;\n\n const mutationQueryNormalize = mutationOptions?.normalize;\n const mutationQueryOptimistic = mutationOptions?.optimistic;\n const mutationQueryInvalidateData = mutationOptions?.invalidate;\n\n if (shouldInvalidateData(globalInvalidateData, mutationQueryInvalidateData)) {\n if (\n event.type === 'updated' &&\n event.action.type === 'success' &&\n event.action.data\n ) {\n invalidateData(event.action.data as Data);\n }\n }\n\n if (\n !mutationQueryNormalize ||\n !shouldUpdateOptimistically(globalOptimistic, mutationQueryOptimistic)\n ) {\n return;\n }\n\n const {autoRollback, devLogging} = getOptimisticProps(\n globalOptimistic,\n mutationQueryOptimistic,\n );\n\n if (\n event.type === 'updated' &&\n event.action.type === 'success' &&\n event.action.data\n ) {\n optimisticUpdate(event.action.data as Data);\n } else if (event.type === 'updated' && event.action.type === 'pending') {\n const context = event.mutation.state.context as {\n optimisticData?: Data;\n rollbackData?: Data;\n };\n\n if (context?.optimisticData) {\n if (\n !context.rollbackData &&\n mutationQueryOptimistic &&\n autoRollback !== false\n ) {\n context.rollbackData = normalizer.getCurrentData(\n context.optimisticData,\n );\n\n if (devLogging) {\n console.log(\n '[OptimisticUpdate] Auto-calculated rollbackData:',\n context.rollbackData,\n );\n }\n }\n\n optimisticUpdate(context.optimisticData);\n }\n } else if (event.type === 'updated' && event.action.type === 'error') {\n const context = event.mutation.state.context as {\n rollbackData?: Data;\n };\n\n if (context?.rollbackData) {\n if (devLogging) {\n console.log('[OptimisticUpdate] Rolling back changes');\n }\n\n optimisticUpdate(context.rollbackData);\n }\n }\n });\n },\n unsubscribe: () => {\n unsubscribeQueryCache?.();\n unsubscribeMutationCache?.();\n unsubscribeQueryCache = null;\n unsubscribeMutationCache = null;\n },\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseNullableValue = void 0;
|
|
7
|
+
var _constants = require("../constants");
|
|
8
|
+
var parseNullableValue = exports.parseNullableValue = function parseNullableValue(value) {
|
|
9
|
+
if (value === _constants.undefinedSymbol) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
if (value === _constants.nullSymbol) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return value;
|
|
16
|
+
};
|
|
17
|
+
// #sourceMappingURL=parseNullableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_constants","require","parseNullableValue","exports","value","undefinedSymbol","undefined","nullSymbol"],"sources":["parseNullableValue.ts"],"sourcesContent":["import {nullSymbol, undefinedSymbol} from '../constants';\n\nexport const parseNullableValue = <T>(\n value: T | typeof undefinedSymbol | typeof nullSymbol,\n): T | undefined | null => {\n if (value === undefinedSymbol) {\n return undefined;\n }\n\n if (value === nullSymbol) {\n return null;\n }\n\n return value;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,IAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,SAArBA,kBAAkBA,CAC3BE,KAAqD,EAC9B;EACvB,IAAIA,KAAK,KAAKC,0BAAe,EAAE;IAC3B,OAAOC,SAAS;EACpB;EAEA,IAAIF,KAAK,KAAKG,qBAAU,EAAE;IACtB,OAAO,IAAI;EACf;EAEA,OAAOH,KAAK;AAChB,CAAC","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: () => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.warnDisabledRefetch = void 0;
|
|
7
|
+
var _warn = require("./warn");
|
|
8
|
+
var warnDisabledRefetch = exports.warnDisabledRefetch = function warnDisabledRefetch() {
|
|
9
|
+
(0, _warn.warn)('Disabled refetch is called');
|
|
10
|
+
};
|
|
11
|
+
// #sourceMappingURL=warnDisabledRefetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_warn","require","warnDisabledRefetch","exports","warn"],"sources":["warnDisabledRefetch.ts"],"sourcesContent":["import {warn} from './warn';\n\nexport const warnDisabledRefetch = () => {\n warn('Disabled refetch is called');\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEO,IAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;EACrC,IAAAE,UAAI,EAAC,4BAA4B,CAAC;AACtC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["require"],"sources":["setupTests.ts"],"sourcesContent":["import '@testing-library/jest-dom';\n"],"mappings":";;AAAAA,OAAA","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export type { DataSourceKey, DataSourceTag, DataSource, AnyDataSource, DataSourceContext, DataSourceParams, DataSourceRequest, DataSourceResponse,
|
|
1
|
+
export type { DataSourceKey, DataSourceTag, DataSource, AnyDataSource, DataSourceContext, DataSourceParams, DataSourceRequest, DataSourceResponse, DataSourceData, DataSourceError, DataSourceOptions, DataSourceState, DataSourceFetchContext, ActualParams, ActualData, } from './types/DataSource';
|
|
2
2
|
export type { DataManager } from './types/DataManager';
|
|
3
3
|
export type { DataLoaderStatus } from './types/DataLoaderStatus';
|
|
4
4
|
export type { InvalidateRepeatOptions, InvalidateOptions } from './types/DataManagerOptions';
|
|
5
|
+
export type { Normalizer, NormalizerConfig, OptimisticConfig } from './types/Normalizer';
|
|
5
6
|
export { idle } from './constants';
|
|
6
7
|
export { composeKey } from './utils/composeKey';
|
|
7
8
|
export { composeFullKey } from './utils/composeFullKey';
|
|
@@ -10,5 +11,6 @@ export { getStatus } from './utils/getStatus';
|
|
|
10
11
|
export { hasTag } from './utils/hasTag';
|
|
11
12
|
export { mergeStatuses } from './utils/mergeStatuses';
|
|
12
13
|
export { skipContext } from './utils/skipContext';
|
|
14
|
+
export { withCatch } from './utils/withCatch';
|
|
13
15
|
export type { Cancellable } from './utils/withCancellation';
|
|
14
16
|
export { isCancellable, isAbortable, withCancellation } from './utils/withCancellation';
|
package/build/esm/core/index.js
CHANGED
|
@@ -6,5 +6,6 @@ export { getStatus } from './utils/getStatus';
|
|
|
6
6
|
export { hasTag } from './utils/hasTag';
|
|
7
7
|
export { mergeStatuses } from './utils/mergeStatuses';
|
|
8
8
|
export { skipContext } from './utils/skipContext';
|
|
9
|
+
export { withCatch } from './utils/withCatch';
|
|
9
10
|
export { isCancellable, isAbortable, withCancellation } from './utils/withCancellation';
|
|
10
11
|
// #sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["idle","composeKey","composeFullKey","getError","getStatus","hasTag","mergeStatuses","skipContext","isCancellable","isAbortable","withCancellation"],"sources":["index.ts"],"sourcesContent":["export type {\n DataSourceKey,\n DataSourceTag,\n DataSource,\n AnyDataSource,\n DataSourceContext,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n
|
|
1
|
+
{"version":3,"names":["idle","composeKey","composeFullKey","getError","getStatus","hasTag","mergeStatuses","skipContext","withCatch","isCancellable","isAbortable","withCancellation"],"sources":["index.ts"],"sourcesContent":["export type {\n DataSourceKey,\n DataSourceTag,\n DataSource,\n AnyDataSource,\n DataSourceContext,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceData,\n DataSourceError,\n DataSourceOptions,\n DataSourceState,\n DataSourceFetchContext,\n ActualParams,\n ActualData,\n} from './types/DataSource';\nexport type {DataManager} from './types/DataManager';\nexport type {DataLoaderStatus} from './types/DataLoaderStatus';\nexport type {InvalidateRepeatOptions, InvalidateOptions} from './types/DataManagerOptions';\nexport type {Normalizer, NormalizerConfig, OptimisticConfig} from './types/Normalizer';\n\nexport {idle} from './constants';\n\nexport {composeKey} from './utils/composeKey';\nexport {composeFullKey} from './utils/composeFullKey';\nexport {getError} from './utils/getError';\nexport {getStatus} from './utils/getStatus';\nexport {hasTag} from './utils/hasTag';\nexport {mergeStatuses} from './utils/mergeStatuses';\nexport {skipContext} from './utils/skipContext';\nexport {withCatch} from './utils/withCatch';\nexport type {Cancellable} from './utils/withCancellation';\nexport {isCancellable, isAbortable, withCancellation} from './utils/withCancellation';\n"],"mappings":"AAsBA,SAAQA,IAAI,QAAO,aAAa;AAEhC,SAAQC,UAAU,QAAO,oBAAoB;AAC7C,SAAQC,cAAc,QAAO,wBAAwB;AACrD,SAAQC,QAAQ,QAAO,kBAAkB;AACzC,SAAQC,SAAS,QAAO,mBAAmB;AAC3C,SAAQC,MAAM,QAAO,gBAAgB;AACrC,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,WAAW,QAAO,qBAAqB;AAC/C,SAAQC,SAAS,QAAO,mBAAmB;AAE3C,SAAQC,aAAa,EAAEC,WAAW,EAAEC,gBAAgB,QAAO,0BAA0B","ignoreList":[]}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import type { Data } from '@normy/core';
|
|
1
2
|
import type { InvalidateOptions } from './DataManagerOptions';
|
|
2
3
|
import type { AnyDataSource, DataSourceParams, DataSourceTag } from './DataSource';
|
|
4
|
+
import type { Normalizer } from './Normalizer';
|
|
3
5
|
export interface DataManager {
|
|
6
|
+
normalizer?: Normalizer;
|
|
7
|
+
optimisticUpdate(mutationData: Data): void;
|
|
8
|
+
invalidateData(data: Data): void;
|
|
4
9
|
invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
5
10
|
invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
6
11
|
invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["DataManager.ts"],"sourcesContent":["import type {InvalidateOptions} from './DataManagerOptions';\nimport type {AnyDataSource, DataSourceParams, DataSourceTag} from './DataSource';\n\nexport interface DataManager {\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ): Promise<void>;\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["DataManager.ts"],"sourcesContent":["import type {Data} from '@normy/core';\n\nimport type {InvalidateOptions} from './DataManagerOptions';\nimport type {AnyDataSource, DataSourceParams, DataSourceTag} from './DataSource';\nimport type {Normalizer} from './Normalizer';\n\nexport interface DataManager {\n normalizer?: Normalizer;\n\n optimisticUpdate(mutationData: Data): void;\n\n invalidateData(data: Data): void;\n\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ): Promise<void>;\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|