@gravity-ui/data-source 0.7.0 → 0.8.1
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 +1 -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/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/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 +7 -6
- package/build/cjs/react/__tests__/DataManagerContext.test.js.map +1 -1
- package/build/cjs/react/__tests__/withDataManager.test.js +3 -0
- package/build/cjs/react/__tests__/withDataManager.test.js.map +1 -1
- 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-query/ClientDataManager.d.ts +16 -3
- package/build/cjs/react-query/ClientDataManager.js +158 -13
- 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 +659 -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/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/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 +2 -2
- package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/utils.js +6 -1
- package/build/cjs/react-query/impl/infinite/utils.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 +2 -2
- package/build/cjs/react-query/impl/plain/types.js.map +1 -1
- package/build/cjs/react-query/impl/plain/utils.js +6 -1
- 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/types/query-meta.d.ts +12 -0
- package/build/cjs/react-query/utils/__tests__/checkMutationObjectsKeys.test.js +295 -0
- package/build/cjs/react-query/utils/__tests__/checkMutationObjectsKeys.test.js.map +1 -0
- package/build/cjs/react-query/utils/checkMutationObjectsKeys.d.ts +17 -0
- package/build/cjs/react-query/utils/checkMutationObjectsKeys.js +88 -0
- package/build/cjs/react-query/utils/checkMutationObjectsKeys.js.map +1 -0
- 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/parseQueryKey.d.ts +2 -0
- package/build/cjs/react-query/utils/parseQueryKey.js +10 -0
- package/build/cjs/react-query/utils/parseQueryKey.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/esm/core/index.d.ts +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/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/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 +7 -6
- package/build/esm/react/__tests__/DataManagerContext.test.js.map +1 -1
- package/build/esm/react/__tests__/withDataManager.test.js +3 -0
- package/build/esm/react/__tests__/withDataManager.test.js.map +1 -1
- 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-query/ClientDataManager.d.ts +16 -3
- package/build/esm/react-query/ClientDataManager.js +152 -7
- 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 +656 -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/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/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 +2 -2
- package/build/esm/react-query/impl/infinite/types.js.map +1 -1
- package/build/esm/react-query/impl/infinite/utils.js +6 -1
- package/build/esm/react-query/impl/infinite/utils.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 +2 -2
- package/build/esm/react-query/impl/plain/types.js.map +1 -1
- package/build/esm/react-query/impl/plain/utils.js +6 -1
- 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/types/query-meta.d.ts +12 -0
- package/build/esm/react-query/utils/__tests__/checkMutationObjectsKeys.test.js +292 -0
- package/build/esm/react-query/utils/__tests__/checkMutationObjectsKeys.test.js.map +1 -0
- package/build/esm/react-query/utils/checkMutationObjectsKeys.d.ts +17 -0
- package/build/esm/react-query/utils/checkMutationObjectsKeys.js +81 -0
- package/build/esm/react-query/utils/checkMutationObjectsKeys.js.map +1 -0
- 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/parseQueryKey.d.ts +2 -0
- package/build/esm/react-query/utils/parseQueryKey.js +4 -0
- package/build/esm/react-query/utils/parseQueryKey.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/package.json +2 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { ClientDataManager } from '../ClientDataManager';
|
|
2
|
+
describe('normalization edge cases', function () {
|
|
3
|
+
var dataManager;
|
|
4
|
+
beforeEach(function () {
|
|
5
|
+
dataManager = new ClientDataManager({
|
|
6
|
+
defaultOptions: {
|
|
7
|
+
queries: {
|
|
8
|
+
retry: false
|
|
9
|
+
},
|
|
10
|
+
mutations: {
|
|
11
|
+
retry: false
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
normalizerConfig: {
|
|
15
|
+
devLogging: false
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
afterEach(function () {
|
|
20
|
+
dataManager.queryClient.clear();
|
|
21
|
+
});
|
|
22
|
+
it('should work correctly with empty data', function () {
|
|
23
|
+
expect(dataManager.normalizer).toBeDefined();
|
|
24
|
+
var queryKey = ['empty'];
|
|
25
|
+
dataManager.queryClient.setQueryData(queryKey, []);
|
|
26
|
+
dataManager.normalizer.setQuery(JSON.stringify(queryKey), []);
|
|
27
|
+
var mutationData = {
|
|
28
|
+
id: '1',
|
|
29
|
+
name: 'New'
|
|
30
|
+
};
|
|
31
|
+
expect(function () {
|
|
32
|
+
dataManager.optimisticUpdate(mutationData);
|
|
33
|
+
}).not.toThrow();
|
|
34
|
+
});
|
|
35
|
+
it('should work correctly with null data', function () {
|
|
36
|
+
expect(dataManager.normalizer).toBeDefined();
|
|
37
|
+
var queryKey = ['null'];
|
|
38
|
+
dataManager.queryClient.setQueryData(queryKey, null);
|
|
39
|
+
var mutationData = {
|
|
40
|
+
id: '1',
|
|
41
|
+
name: 'New'
|
|
42
|
+
};
|
|
43
|
+
expect(function () {
|
|
44
|
+
dataManager.optimisticUpdate(mutationData);
|
|
45
|
+
}).not.toThrow();
|
|
46
|
+
});
|
|
47
|
+
it('should work correctly with undefined data', function () {
|
|
48
|
+
expect(dataManager.normalizer).toBeDefined();
|
|
49
|
+
var queryKey = ['undefined'];
|
|
50
|
+
dataManager.queryClient.setQueryData(queryKey, undefined);
|
|
51
|
+
var mutationData = {
|
|
52
|
+
id: '1',
|
|
53
|
+
name: 'New'
|
|
54
|
+
};
|
|
55
|
+
expect(function () {
|
|
56
|
+
dataManager.optimisticUpdate(mutationData);
|
|
57
|
+
}).not.toThrow();
|
|
58
|
+
});
|
|
59
|
+
it('should work correctly with arrays of objects', function () {
|
|
60
|
+
expect(dataManager.normalizer).toBeDefined();
|
|
61
|
+
var queryKey = ['array'];
|
|
62
|
+
var data = [{
|
|
63
|
+
id: '1',
|
|
64
|
+
name: 'Item 1'
|
|
65
|
+
}, {
|
|
66
|
+
id: '2',
|
|
67
|
+
name: 'Item 2'
|
|
68
|
+
}];
|
|
69
|
+
dataManager.queryClient.setQueryData(queryKey, data);
|
|
70
|
+
dataManager.normalizer.setQuery(JSON.stringify(queryKey), data);
|
|
71
|
+
var mutationData = {
|
|
72
|
+
id: '1',
|
|
73
|
+
name: 'Updated Item 1'
|
|
74
|
+
};
|
|
75
|
+
dataManager.optimisticUpdate(mutationData);
|
|
76
|
+
var updatedData = dataManager.queryClient.getQueryData(queryKey);
|
|
77
|
+
expect(updatedData[0].name).toBe('Updated Item 1');
|
|
78
|
+
expect(updatedData[1].name).toBe('Item 2');
|
|
79
|
+
});
|
|
80
|
+
it('should work correctly with single objects', function () {
|
|
81
|
+
expect(dataManager.normalizer).toBeDefined();
|
|
82
|
+
var queryKey = ['single'];
|
|
83
|
+
var data = {
|
|
84
|
+
id: '1',
|
|
85
|
+
name: 'Item'
|
|
86
|
+
};
|
|
87
|
+
dataManager.queryClient.setQueryData(queryKey, data);
|
|
88
|
+
dataManager.normalizer.setQuery(JSON.stringify(queryKey), data);
|
|
89
|
+
var mutationData = {
|
|
90
|
+
id: '1',
|
|
91
|
+
name: 'Updated Item'
|
|
92
|
+
};
|
|
93
|
+
dataManager.optimisticUpdate(mutationData);
|
|
94
|
+
var updatedData = dataManager.queryClient.getQueryData(queryKey);
|
|
95
|
+
expect(updatedData.name).toBe('Updated Item');
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
// #sourceMappingURL=normalizationEdgeCases.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ClientDataManager","describe","dataManager","beforeEach","defaultOptions","queries","retry","mutations","normalizerConfig","devLogging","afterEach","queryClient","clear","it","expect","normalizer","toBeDefined","queryKey","setQueryData","setQuery","JSON","stringify","mutationData","id","name","optimisticUpdate","not","toThrow","undefined","data","updatedData","getQueryData","toBe"],"sources":["normalizationEdgeCases.test.tsx"],"sourcesContent":["import type {Data} from '@normy/core';\n\nimport {ClientDataManager} from '../ClientDataManager';\n\ndescribe('normalization edge cases', () => {\n let dataManager: ClientDataManager;\n\n beforeEach(() => {\n dataManager = new ClientDataManager({\n defaultOptions: {\n queries: {retry: false},\n mutations: {retry: false},\n },\n normalizerConfig: {\n devLogging: false,\n },\n });\n });\n\n afterEach(() => {\n dataManager.queryClient.clear();\n });\n\n it('should work correctly with empty data', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['empty'];\n dataManager.queryClient.setQueryData(queryKey, []);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), []);\n\n const mutationData: Data = {id: '1', name: 'New'};\n expect(() => {\n dataManager.optimisticUpdate(mutationData);\n }).not.toThrow();\n });\n\n it('should work correctly with null data', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['null'];\n dataManager.queryClient.setQueryData(queryKey, null);\n\n const mutationData: Data = {id: '1', name: 'New'};\n expect(() => {\n dataManager.optimisticUpdate(mutationData);\n }).not.toThrow();\n });\n\n it('should work correctly with undefined data', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['undefined'];\n dataManager.queryClient.setQueryData(queryKey, undefined);\n\n const mutationData: Data = {id: '1', name: 'New'};\n expect(() => {\n dataManager.optimisticUpdate(mutationData);\n }).not.toThrow();\n });\n\n it('should work correctly with arrays of objects', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['array'];\n const data = [\n {id: '1', name: 'Item 1'},\n {id: '2', name: 'Item 2'},\n ];\n\n dataManager.queryClient.setQueryData(queryKey, data);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), data);\n\n const mutationData: Data = {id: '1', name: 'Updated Item 1'};\n dataManager.optimisticUpdate(mutationData);\n\n const updatedData = dataManager.queryClient.getQueryData(queryKey) as Array<{\n id: string;\n name: string;\n }>;\n expect(updatedData[0].name).toBe('Updated Item 1');\n expect(updatedData[1].name).toBe('Item 2');\n });\n\n it('should work correctly with single objects', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['single'];\n const data = {id: '1', name: 'Item'};\n\n dataManager.queryClient.setQueryData(queryKey, data);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), data);\n\n const mutationData: Data = {id: '1', name: 'Updated Item'};\n dataManager.optimisticUpdate(mutationData);\n\n const updatedData = dataManager.queryClient.getQueryData(queryKey) as {\n id: string;\n name: string;\n };\n expect(updatedData.name).toBe('Updated Item');\n });\n});\n"],"mappings":"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","ignoreList":[]}
|