@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,28 @@
|
|
|
1
|
+
import { normalizeStatus } from '../normalizeStatus';
|
|
2
|
+
describe('normalizeStatus', function () {
|
|
3
|
+
it('should return loading when status is pending and fetchStatus is fetching', function () {
|
|
4
|
+
var status = 'pending';
|
|
5
|
+
var fetchStatus = 'fetching';
|
|
6
|
+
var result = normalizeStatus(status, fetchStatus);
|
|
7
|
+
expect(result).toBe('loading');
|
|
8
|
+
});
|
|
9
|
+
it('should return success when status is pending and fetchStatus is not fetching', function () {
|
|
10
|
+
var status = 'pending';
|
|
11
|
+
var fetchStatus = 'idle';
|
|
12
|
+
var result = normalizeStatus(status, fetchStatus);
|
|
13
|
+
expect(result).toBe('success');
|
|
14
|
+
});
|
|
15
|
+
it('should return success when status is success', function () {
|
|
16
|
+
var status = 'success';
|
|
17
|
+
var fetchStatus = 'idle';
|
|
18
|
+
var result = normalizeStatus(status, fetchStatus);
|
|
19
|
+
expect(result).toBe('success');
|
|
20
|
+
});
|
|
21
|
+
it('should return error when status is error', function () {
|
|
22
|
+
var status = 'error';
|
|
23
|
+
var fetchStatus = 'idle';
|
|
24
|
+
var result = normalizeStatus(status, fetchStatus);
|
|
25
|
+
expect(result).toBe('error');
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
// #sourceMappingURL=normalizeStatus.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["normalizeStatus","describe","it","status","fetchStatus","result","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,SAAQA,eAAe,QAAO,oBAAoB;AAElDC,QAAQ,CAAC,iBAAiB,EAAE,YAAM;EAC9BC,EAAE,CAAC,0EAA0E,EAAE,YAAM;IACjF,IAAMC,MAAmB,GAAG,SAAS;IACrC,IAAMC,WAAwB,GAAG,UAAU;IAE3C,IAAMC,MAAM,GAAGL,eAAe,CAACG,MAAM,EAAEC,WAAW,CAAC;IAEnDE,MAAM,CAACD,MAAM,CAAC,CAACE,IAAI,CAAC,SAAS,CAAC;EAClC,CAAC,CAAC;EAEFL,EAAE,CAAC,8EAA8E,EAAE,YAAM;IACrF,IAAMC,MAAmB,GAAG,SAAS;IACrC,IAAMC,WAAwB,GAAG,MAAM;IAEvC,IAAMC,MAAM,GAAGL,eAAe,CAACG,MAAM,EAAEC,WAAW,CAAC;IAEnDE,MAAM,CAACD,MAAM,CAAC,CAACE,IAAI,CAAC,SAAS,CAAC;EAClC,CAAC,CAAC;EAEFL,EAAE,CAAC,8CAA8C,EAAE,YAAM;IACrD,IAAMC,MAAmB,GAAG,SAAS;IACrC,IAAMC,WAAwB,GAAG,MAAM;IAEvC,IAAMC,MAAM,GAAGL,eAAe,CAACG,MAAM,EAAEC,WAAW,CAAC;IAEnDE,MAAM,CAACD,MAAM,CAAC,CAACE,IAAI,CAAC,SAAS,CAAC;EAClC,CAAC,CAAC;EAEFL,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACjD,IAAMC,MAAmB,GAAG,OAAO;IACnC,IAAMC,WAAwB,GAAG,MAAM;IAEvC,IAAMC,MAAM,GAAGL,eAAe,CAACG,MAAM,EAAEC,WAAW,CAAC;IAEnDE,MAAM,CAACD,MAAM,CAAC,CAACE,IAAI,CAAC,OAAO,CAAC;EAChC,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { notReachable } from '../notReachable';
|
|
2
|
+
describe('notReachable', function () {
|
|
3
|
+
it('should throw an error with default message', function () {
|
|
4
|
+
var callNotReachable = function callNotReachable() {
|
|
5
|
+
notReachable('test');
|
|
6
|
+
};
|
|
7
|
+
expect(callNotReachable).toThrow('Not reachable state: test');
|
|
8
|
+
});
|
|
9
|
+
it('should throw an error with custom message', function () {
|
|
10
|
+
var callNotReachable = function callNotReachable() {
|
|
11
|
+
notReachable('test', 'Custom error message');
|
|
12
|
+
};
|
|
13
|
+
expect(callNotReachable).toThrow('Custom error message');
|
|
14
|
+
});
|
|
15
|
+
it('should be used for exhaustive type checking', function () {
|
|
16
|
+
var getNumberName = function getNumberName(num) {
|
|
17
|
+
switch (num) {
|
|
18
|
+
case 1:
|
|
19
|
+
return 'one';
|
|
20
|
+
case 2:
|
|
21
|
+
return 'two';
|
|
22
|
+
case 3:
|
|
23
|
+
return 'three';
|
|
24
|
+
default:
|
|
25
|
+
return notReachable(num);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
expect(getNumberName(1)).toBe('one');
|
|
29
|
+
expect(getNumberName(2)).toBe('two');
|
|
30
|
+
expect(getNumberName(3)).toBe('three');
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
// #sourceMappingURL=notReachable.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["notReachable","describe","it","callNotReachable","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,SAAQA,YAAY,QAAO,iBAAiB;AAE5CC,QAAQ,CAAC,cAAc,EAAE,YAAM;EAC3BC,EAAE,CAAC,4CAA4C,EAAE,YAAM;IACnD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;MAC3BH,YAAY,CAAC,MAAe,CAAC;IACjC,CAAC;IAEDI,MAAM,CAACD,gBAAgB,CAAC,CAACE,OAAO,CAAC,2BAA2B,CAAC;EACjE,CAAC,CAAC;EAEFH,EAAE,CAAC,2CAA2C,EAAE,YAAM;IAClD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;MAC3BH,YAAY,CAAC,MAAM,EAAW,sBAAsB,CAAC;IACzD,CAAC;IAEDI,MAAM,CAACD,gBAAgB,CAAC,CAACE,OAAO,CAAC,sBAAsB,CAAC;EAC5D,CAAC,CAAC;EAEFH,EAAE,CAAC,6CAA6C,EAAE,YAAM;IACpD,IAAMI,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,OAAOP,YAAY,CAACO,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,25 @@
|
|
|
1
|
+
import { nullSymbol, undefinedSymbol } from '../../constants';
|
|
2
|
+
import { parseNullableValue } from '../parseNullableValue';
|
|
3
|
+
describe('parseNullableValue', function () {
|
|
4
|
+
it('should return undefined for undefinedSymbol', function () {
|
|
5
|
+
expect(parseNullableValue(undefinedSymbol)).toBeUndefined();
|
|
6
|
+
});
|
|
7
|
+
it('should return null for nullSymbol', function () {
|
|
8
|
+
expect(parseNullableValue(nullSymbol)).toBeNull();
|
|
9
|
+
});
|
|
10
|
+
it('should return the value for non-symbol values', function () {
|
|
11
|
+
expect(parseNullableValue(42)).toBe(42);
|
|
12
|
+
expect(parseNullableValue(0)).toBe(0);
|
|
13
|
+
expect(parseNullableValue('test')).toBe('test');
|
|
14
|
+
expect(parseNullableValue('')).toBe('');
|
|
15
|
+
expect(parseNullableValue(true)).toBe(true);
|
|
16
|
+
expect(parseNullableValue(false)).toBe(false);
|
|
17
|
+
var obj = {
|
|
18
|
+
a: 1
|
|
19
|
+
};
|
|
20
|
+
expect(parseNullableValue(obj)).toBe(obj);
|
|
21
|
+
var arr = [1, 2, 3];
|
|
22
|
+
expect(parseNullableValue(arr)).toBe(arr);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
// #sourceMappingURL=parseNullableValue.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["nullSymbol","undefinedSymbol","parseNullableValue","describe","it","expect","toBeUndefined","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,SAAQA,UAAU,EAAEC,eAAe,QAAO,iBAAiB;AAC3D,SAAQC,kBAAkB,QAAO,uBAAuB;AAExDC,QAAQ,CAAC,oBAAoB,EAAE,YAAM;EACjCC,EAAE,CAAC,6CAA6C,EAAE,YAAM;IACpDC,MAAM,CAACH,kBAAkB,CAACD,eAAe,CAAC,CAAC,CAACK,aAAa,CAAC,CAAC;EAC/D,CAAC,CAAC;EAEFF,EAAE,CAAC,mCAAmC,EAAE,YAAM;IAC1CC,MAAM,CAACH,kBAAkB,CAACF,UAAU,CAAC,CAAC,CAACO,QAAQ,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFH,EAAE,CAAC,+CAA+C,EAAE,YAAM;IACtDC,MAAM,CAACH,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAACM,IAAI,CAAC,EAAE,CAAC;IACvCH,MAAM,CAACH,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC;IACrCH,MAAM,CAACH,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAACM,IAAI,CAAC,MAAM,CAAC;IAC/CH,MAAM,CAACH,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAACM,IAAI,CAAC,EAAE,CAAC;IACvCH,MAAM,CAACH,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC;IAC3CH,MAAM,CAACH,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAACM,IAAI,CAAC,KAAK,CAAC;IAE7C,IAAMC,GAAG,GAAG;MAACC,CAAC,EAAE;IAAC,CAAC;IAClBL,MAAM,CAACH,kBAAkB,CAACO,GAAG,CAAC,CAAC,CAACD,IAAI,CAACC,GAAG,CAAC;IAEzC,IAAME,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrBN,MAAM,CAACH,kBAAkB,CAACS,GAAG,CAAC,CAAC,CAACH,IAAI,CAACG,GAAG,CAAC;EAC7C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { nullSymbol, undefinedSymbol } from '../constants';
|
|
2
|
+
export var formatNullableValue = function formatNullableValue(value) {
|
|
3
|
+
if (value === undefined) {
|
|
4
|
+
return undefinedSymbol;
|
|
5
|
+
}
|
|
6
|
+
if (value === null) {
|
|
7
|
+
return nullSymbol;
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
};
|
|
11
|
+
// #sourceMappingURL=formatNullableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["nullSymbol","undefinedSymbol","formatNullableValue","value","undefined"],"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,SAAQA,UAAU,EAAEC,eAAe,QAAO,cAAc;AAExD,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC5BC,KAA2B,EACsB;EACjD,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACrB,OAAOH,eAAe;EAC1B;EAEA,IAAIE,KAAK,KAAK,IAAI,EAAE;IAChB,OAAOH,UAAU;EACrB;EAEA,OAAOG,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,143 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
+
var shouldInvalidateData = function shouldInvalidateData(globalConfig, mutationConfig) {
|
|
3
|
+
if (mutationConfig === false) {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
if (!globalConfig) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
return true;
|
|
10
|
+
};
|
|
11
|
+
var shouldUpdateOptimistically = function shouldUpdateOptimistically(globalConfig, mutationConfig) {
|
|
12
|
+
if (mutationConfig === false) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (typeof mutationConfig === 'boolean' && mutationConfig || _typeof(mutationConfig) === 'object' && mutationConfig) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
if (!globalConfig) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
};
|
|
23
|
+
var getOptimisticProps = function getOptimisticProps(globalConfig, mutationConfig) {
|
|
24
|
+
var globalAutoRollback = _typeof(globalConfig) === 'object' ? globalConfig.autoCalculateRollback : undefined;
|
|
25
|
+
var mutationAutoRollback = _typeof(mutationConfig) === 'object' ? mutationConfig.autoCalculateRollback : undefined;
|
|
26
|
+
var globalDevLogging = _typeof(globalConfig) === 'object' ? globalConfig.devLogging : undefined;
|
|
27
|
+
var mutationDevLogging = _typeof(mutationConfig) === 'object' ? mutationConfig.devLogging : undefined;
|
|
28
|
+
return {
|
|
29
|
+
autoRollback: mutationAutoRollback !== null && mutationAutoRollback !== void 0 ? mutationAutoRollback : globalAutoRollback,
|
|
30
|
+
devLogging: mutationDevLogging !== null && mutationDevLogging !== void 0 ? mutationDevLogging : globalDevLogging
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export var createQueryNormalizer = function createQueryNormalizer(normalizer, queryClient, config, optimisticUpdate, invalidateData) {
|
|
34
|
+
if (!normalizer || !config) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
var globalOptimistic = _typeof(config) === 'object' && 'optimistic' in config ? config.optimistic : false;
|
|
38
|
+
var globalInvalidateData = _typeof(config) === 'object' && 'invalidate' in config ? config.invalidate : false;
|
|
39
|
+
var unsubscribeQueryCache = null;
|
|
40
|
+
var unsubscribeMutationCache = null;
|
|
41
|
+
return {
|
|
42
|
+
/** Get normalized data */
|
|
43
|
+
getNormalizedData: normalizer.getNormalizedData,
|
|
44
|
+
/** Set normalized data (for manual updates, WebSocket, etc.) */
|
|
45
|
+
setNormalizedData: function setNormalizedData(data) {
|
|
46
|
+
return optimisticUpdate(data);
|
|
47
|
+
},
|
|
48
|
+
/** Clear all normalized data */
|
|
49
|
+
clear: normalizer.clearNormalizedData,
|
|
50
|
+
/** Get object by ID */
|
|
51
|
+
getObjectById: normalizer.getObjectById,
|
|
52
|
+
/** Get query fragment */
|
|
53
|
+
getQueryFragment: normalizer.getQueryFragment,
|
|
54
|
+
/** Get dependent queries by data */
|
|
55
|
+
getDependentQueries: function getDependentQueries(mutationData) {
|
|
56
|
+
return normalizer.getDependentQueries(mutationData).map(function (key) {
|
|
57
|
+
return JSON.parse(key);
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
/** Get dependent queries by IDs */
|
|
61
|
+
getDependentQueriesByIds: function getDependentQueriesByIds(ids) {
|
|
62
|
+
return normalizer.getDependentQueriesByIds(ids).map(function (key) {
|
|
63
|
+
return JSON.parse(key);
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
/** Subscribe to QueryCache changes */
|
|
67
|
+
subscribe: function subscribe() {
|
|
68
|
+
// Subscribe to QueryCache (query additions/updates/removals)
|
|
69
|
+
unsubscribeQueryCache = queryClient.getQueryCache().subscribe(function (event) {
|
|
70
|
+
var _queryOptions$normali;
|
|
71
|
+
var queryKeyStr = JSON.stringify(event.query.queryKey);
|
|
72
|
+
if (event.type === 'removed') {
|
|
73
|
+
normalizer.removeQuery(queryKeyStr);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Check if the query should be normalized
|
|
78
|
+
// At this point options are already merged (DataSource + Hook)
|
|
79
|
+
var queryOptions = event.query.options;
|
|
80
|
+
var queryNormalize = (_queryOptions$normali = queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.normalize) !== null && _queryOptions$normali !== void 0 ? _queryOptions$normali : true;
|
|
81
|
+
if (!queryNormalize) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (event.type === 'added' && event.query.state.data !== undefined) {
|
|
85
|
+
normalizer.setQuery(queryKeyStr, event.query.state.data);
|
|
86
|
+
} else if (event.type === 'updated' && event.action.type === 'success' && event.action.data !== undefined) {
|
|
87
|
+
normalizer.setQuery(queryKeyStr, event.action.data);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// Subscribe to MutationCache for normalization + optimistic updates
|
|
92
|
+
unsubscribeMutationCache = queryClient.getMutationCache().subscribe(function (event) {
|
|
93
|
+
var _event$mutation;
|
|
94
|
+
// Cast to extended type with additional configs, if available
|
|
95
|
+
var mutationOptions = (_event$mutation = event.mutation) === null || _event$mutation === void 0 ? void 0 : _event$mutation.options;
|
|
96
|
+
var mutationQueryNormalize = mutationOptions === null || mutationOptions === void 0 ? void 0 : mutationOptions.normalize;
|
|
97
|
+
var mutationQueryOptimistic = mutationOptions === null || mutationOptions === void 0 ? void 0 : mutationOptions.optimistic;
|
|
98
|
+
var mutationQueryInvalidateData = mutationOptions === null || mutationOptions === void 0 ? void 0 : mutationOptions.invalidate;
|
|
99
|
+
if (shouldInvalidateData(globalInvalidateData, mutationQueryInvalidateData)) {
|
|
100
|
+
if (event.type === 'updated' && event.action.type === 'success' && event.action.data) {
|
|
101
|
+
invalidateData(event.action.data);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!mutationQueryNormalize || !shouldUpdateOptimistically(globalOptimistic, mutationQueryOptimistic)) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
var _getOptimisticProps = getOptimisticProps(globalOptimistic, mutationQueryOptimistic),
|
|
108
|
+
autoRollback = _getOptimisticProps.autoRollback,
|
|
109
|
+
devLogging = _getOptimisticProps.devLogging;
|
|
110
|
+
if (event.type === 'updated' && event.action.type === 'success' && event.action.data) {
|
|
111
|
+
optimisticUpdate(event.action.data);
|
|
112
|
+
} else if (event.type === 'updated' && event.action.type === 'pending') {
|
|
113
|
+
var context = event.mutation.state.context;
|
|
114
|
+
if (context !== null && context !== void 0 && context.optimisticData) {
|
|
115
|
+
if (!context.rollbackData && mutationQueryOptimistic && autoRollback !== false) {
|
|
116
|
+
context.rollbackData = normalizer.getCurrentData(context.optimisticData);
|
|
117
|
+
if (devLogging) {
|
|
118
|
+
console.log('[OptimisticUpdate] Auto-calculated rollbackData:', context.rollbackData);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
optimisticUpdate(context.optimisticData);
|
|
122
|
+
}
|
|
123
|
+
} else if (event.type === 'updated' && event.action.type === 'error') {
|
|
124
|
+
var _context = event.mutation.state.context;
|
|
125
|
+
if (_context !== null && _context !== void 0 && _context.rollbackData) {
|
|
126
|
+
if (devLogging) {
|
|
127
|
+
console.log('[OptimisticUpdate] Rolling back changes');
|
|
128
|
+
}
|
|
129
|
+
optimisticUpdate(_context.rollbackData);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
unsubscribe: function unsubscribe() {
|
|
135
|
+
var _unsubscribeQueryCach, _unsubscribeMutationC;
|
|
136
|
+
(_unsubscribeQueryCach = unsubscribeQueryCache) === null || _unsubscribeQueryCach === void 0 || _unsubscribeQueryCach();
|
|
137
|
+
(_unsubscribeMutationC = unsubscribeMutationCache) === null || _unsubscribeMutationC === void 0 || _unsubscribeMutationC();
|
|
138
|
+
unsubscribeQueryCache = null;
|
|
139
|
+
unsubscribeMutationCache = null;
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
// #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","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","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,11 @@
|
|
|
1
|
+
import { nullSymbol, undefinedSymbol } from '../constants';
|
|
2
|
+
export var parseNullableValue = function parseNullableValue(value) {
|
|
3
|
+
if (value === undefinedSymbol) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
if (value === nullSymbol) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
};
|
|
11
|
+
// #sourceMappingURL=parseNullableValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["nullSymbol","undefinedSymbol","parseNullableValue","value","undefined"],"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,SAAQA,UAAU,EAAEC,eAAe,QAAO,cAAc;AAExD,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAC3BC,KAAqD,EAC9B;EACvB,IAAIA,KAAK,KAAKF,eAAe,EAAE;IAC3B,OAAOG,SAAS;EACpB;EAEA,IAAID,KAAK,KAAKH,UAAU,EAAE;IACtB,OAAO,IAAI;EACf;EAEA,OAAOG,KAAK;AAChB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function warn(msg: string): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["warn","msg","process","env","NODE_ENV","console"],"sources":["warn.ts"],"sourcesContent":["export function warn(msg: string) {\n if (!msg || process.env.NODE_ENV === 'production') {\n return;\n }\n\n // eslint-disable-next-line no-console\n console.warn(msg);\n}\n"],"mappings":"AAAA,OAAO,SAASA,IAAIA,CAACC,GAAW,EAAE;EAC9B,IAAI,CAACA,GAAG,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IAC/C;EACJ;;EAEA;EACAC,OAAO,CAACL,IAAI,CAACC,GAAG,CAAC;AACrB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const warnDisabledRefetch: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["warn","warnDisabledRefetch"],"sources":["warnDisabledRefetch.ts"],"sourcesContent":["import {warn} from './warn';\n\nexport const warnDisabledRefetch = () => {\n warn('Disabled refetch is called');\n};\n"],"mappings":"AAAA,SAAQA,IAAI,QAAO,QAAQ;AAE3B,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;EACrCD,IAAI,CAAC,4BAA4B,CAAC;AACtC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["setupTests.ts"],"sourcesContent":["import '@testing-library/jest-dom';\n"],"mappings":"AAAA,OAAO,2BAA2B","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/data-source",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A wrapper around data fetching",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"data-fetching",
|
|
@@ -43,27 +43,32 @@
|
|
|
43
43
|
"typecheck": "tsc --noEmit"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
+
"@normy/core": "^0.14.0",
|
|
46
47
|
"utility-types": "^3.11.0"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
|
-
"@commitlint/cli": "^19.
|
|
50
|
-
"@commitlint/config-conventional": "^19.
|
|
51
|
-
"@gravity-ui/app-builder": "^0.
|
|
52
|
-
"@gravity-ui/eslint-config": "^3.
|
|
50
|
+
"@commitlint/cli": "^19.8.0",
|
|
51
|
+
"@commitlint/config-conventional": "^19.8.0",
|
|
52
|
+
"@gravity-ui/app-builder": "^0.22.0",
|
|
53
|
+
"@gravity-ui/eslint-config": "^3.3.0",
|
|
53
54
|
"@gravity-ui/prettier-config": "^1.1.0",
|
|
54
55
|
"@gravity-ui/tsconfig": "^1.0.0",
|
|
55
|
-
"@swc/jest": "^0.2.
|
|
56
|
-
"@tanstack/react-query": "^5.
|
|
57
|
-
"@
|
|
58
|
-
"@
|
|
59
|
-
"
|
|
60
|
-
"
|
|
56
|
+
"@swc/jest": "^0.2.37",
|
|
57
|
+
"@tanstack/react-query": "^5.71.1",
|
|
58
|
+
"@testing-library/dom": "^10.4.0",
|
|
59
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
60
|
+
"@testing-library/react": "^16.2.0",
|
|
61
|
+
"@types/jest": "^29.5.14",
|
|
62
|
+
"@types/react": "^19.0.12",
|
|
63
|
+
"eslint": "^8.57.1",
|
|
64
|
+
"husky": "^9.1.7",
|
|
61
65
|
"jest": "^29.7.0",
|
|
66
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
62
67
|
"nano-staged": "^0.8.0",
|
|
63
|
-
"react": "^
|
|
68
|
+
"react": "^19.1.0"
|
|
64
69
|
},
|
|
65
70
|
"peerDependencies": {
|
|
66
71
|
"@tanstack/react-query": "^5.0.0",
|
|
67
|
-
"react": "^18.0.0"
|
|
72
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
68
73
|
}
|
|
69
74
|
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const undefinedSymbol: unique symbol;
|
|
2
|
-
export declare const nullSymbol: unique symbol;
|
|
3
|
-
export declare const formatNullableValue: <T>(value: T | undefined | null) => T | typeof undefinedSymbol | typeof nullSymbol;
|
|
4
|
-
export declare const parseNullableValue: <T>(value: T | typeof undefinedSymbol | typeof nullSymbol) => T | undefined | null;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.undefinedSymbol = exports.parseNullableValue = exports.nullSymbol = exports.formatNullableValue = void 0;
|
|
7
|
-
var undefinedSymbol = exports.undefinedSymbol = Symbol('undefined');
|
|
8
|
-
var nullSymbol = exports.nullSymbol = Symbol('null');
|
|
9
|
-
var formatNullableValue = exports.formatNullableValue = function formatNullableValue(value) {
|
|
10
|
-
if (value === undefined) {
|
|
11
|
-
return undefinedSymbol;
|
|
12
|
-
}
|
|
13
|
-
if (value === null) {
|
|
14
|
-
return nullSymbol;
|
|
15
|
-
}
|
|
16
|
-
return value;
|
|
17
|
-
};
|
|
18
|
-
var parseNullableValue = exports.parseNullableValue = function parseNullableValue(value) {
|
|
19
|
-
if (value === undefinedSymbol) {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
if (value === nullSymbol) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
return value;
|
|
26
|
-
};
|
|
27
|
-
// #sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["undefinedSymbol","exports","Symbol","nullSymbol","formatNullableValue","value","undefined","parseNullableValue"],"sources":["utils.ts"],"sourcesContent":["export const undefinedSymbol = Symbol('undefined');\nexport const nullSymbol = Symbol('null');\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\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":";;;;;;AAAO,IAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAGE,MAAM,CAAC,WAAW,CAAC;AAC3C,IAAMC,UAAU,GAAAF,OAAA,CAAAE,UAAA,GAAGD,MAAM,CAAC,MAAM,CAAC;AAEjC,IAAME,mBAAmB,GAAAH,OAAA,CAAAG,mBAAA,GAAG,SAAtBA,mBAAmBA,CAC5BC,KAA2B,EACsB;EACjD,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACrB,OAAON,eAAe;EAC1B;EAEA,IAAIK,KAAK,KAAK,IAAI,EAAE;IAChB,OAAOF,UAAU;EACrB;EAEA,OAAOE,KAAK;AAChB,CAAC;AAEM,IAAME,kBAAkB,GAAAN,OAAA,CAAAM,kBAAA,GAAG,SAArBA,kBAAkBA,CAC3BF,KAAqD,EAC9B;EACvB,IAAIA,KAAK,KAAKL,eAAe,EAAE;IAC3B,OAAOM,SAAS;EACpB;EAEA,IAAID,KAAK,KAAKF,UAAU,EAAE;IACtB,OAAO,IAAI;EACf;EAEA,OAAOE,KAAK;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const undefinedSymbol: unique symbol;
|
|
2
|
-
export declare const nullSymbol: unique symbol;
|
|
3
|
-
export declare const formatNullableValue: <T>(value: T | undefined | null) => T | typeof undefinedSymbol | typeof nullSymbol;
|
|
4
|
-
export declare const parseNullableValue: <T>(value: T | typeof undefinedSymbol | typeof nullSymbol) => T | undefined | null;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export var undefinedSymbol = Symbol('undefined');
|
|
2
|
-
export var nullSymbol = Symbol('null');
|
|
3
|
-
export var formatNullableValue = function formatNullableValue(value) {
|
|
4
|
-
if (value === undefined) {
|
|
5
|
-
return undefinedSymbol;
|
|
6
|
-
}
|
|
7
|
-
if (value === null) {
|
|
8
|
-
return nullSymbol;
|
|
9
|
-
}
|
|
10
|
-
return value;
|
|
11
|
-
};
|
|
12
|
-
export var parseNullableValue = function parseNullableValue(value) {
|
|
13
|
-
if (value === undefinedSymbol) {
|
|
14
|
-
return undefined;
|
|
15
|
-
}
|
|
16
|
-
if (value === nullSymbol) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return value;
|
|
20
|
-
};
|
|
21
|
-
// #sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["undefinedSymbol","Symbol","nullSymbol","formatNullableValue","value","undefined","parseNullableValue"],"sources":["utils.ts"],"sourcesContent":["export const undefinedSymbol = Symbol('undefined');\nexport const nullSymbol = Symbol('null');\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\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,OAAO,IAAMA,eAAe,GAAGC,MAAM,CAAC,WAAW,CAAC;AAClD,OAAO,IAAMC,UAAU,GAAGD,MAAM,CAAC,MAAM,CAAC;AAExC,OAAO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC5BC,KAA2B,EACsB;EACjD,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACrB,OAAOL,eAAe;EAC1B;EAEA,IAAII,KAAK,KAAK,IAAI,EAAE;IAChB,OAAOF,UAAU;EACrB;EAEA,OAAOE,KAAK;AAChB,CAAC;AAED,OAAO,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAC3BF,KAAqD,EAC9B;EACvB,IAAIA,KAAK,KAAKJ,eAAe,EAAE;IAC3B,OAAOK,SAAS;EACpB;EAEA,IAAID,KAAK,KAAKF,UAAU,EAAE;IACtB,OAAO,IAAI;EACf;EAEA,OAAOE,KAAK;AAChB,CAAC","ignoreList":[]}
|