@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,17 @@
|
|
|
1
|
+
import type { Normalizer } from '../../core';
|
|
2
|
+
type DataObject = Record<string, unknown>;
|
|
3
|
+
type NormalizableObject = DataObject & {
|
|
4
|
+
id?: string;
|
|
5
|
+
};
|
|
6
|
+
export interface AffectedObject {
|
|
7
|
+
id: string;
|
|
8
|
+
missingKeys: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface MutationObjectsKeysResult {
|
|
11
|
+
needsRefetch: boolean;
|
|
12
|
+
details: AffectedObject[];
|
|
13
|
+
}
|
|
14
|
+
export declare const checkMutationObjectsKeys: (mutationData: unknown, normalizer: Normalizer, config?: {
|
|
15
|
+
getNormalizationObjectKey?: (obj: NormalizableObject) => string | undefined;
|
|
16
|
+
}) => MutationObjectsKeysResult;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/createForOfIteratorHelper";
|
|
2
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
|
+
import { getId } from '@normy/core';
|
|
4
|
+
var hasFewerKeys = function hasFewerKeys(mutation, existing) {
|
|
5
|
+
var mutationKeys = Object.keys(mutation);
|
|
6
|
+
var existingKeys = Object.keys(existing);
|
|
7
|
+
if (mutationKeys.length >= existingKeys.length) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
for (var _i = 0, _mutationKeys = mutationKeys; _i < _mutationKeys.length; _i++) {
|
|
11
|
+
var key = _mutationKeys[_i];
|
|
12
|
+
if (!existingKeys.includes(key)) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
};
|
|
18
|
+
var extractNormalizableObjects = function extractNormalizableObjects(data, getNormalizationObjectKey) {
|
|
19
|
+
var objects = [];
|
|
20
|
+
function extract(item) {
|
|
21
|
+
if (Array.isArray(item)) {
|
|
22
|
+
item.forEach(extract);
|
|
23
|
+
} else if (item !== null && _typeof(item) === 'object' && !(item instanceof Date)) {
|
|
24
|
+
var obj = item;
|
|
25
|
+
if (getNormalizationObjectKey(obj)) {
|
|
26
|
+
objects.push(obj);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
extract(data);
|
|
31
|
+
return objects;
|
|
32
|
+
};
|
|
33
|
+
export var checkMutationObjectsKeys = function checkMutationObjectsKeys(mutationData, normalizer, config) {
|
|
34
|
+
var getNormalizationObjectKey = (config === null || config === void 0 ? void 0 : config.getNormalizationObjectKey) || function (obj) {
|
|
35
|
+
return obj.id;
|
|
36
|
+
};
|
|
37
|
+
var normalizedState = normalizer.getNormalizedData();
|
|
38
|
+
var mutationObjects = extractNormalizableObjects(mutationData, getNormalizationObjectKey);
|
|
39
|
+
if (mutationObjects.length === 0) {
|
|
40
|
+
return {
|
|
41
|
+
needsRefetch: false,
|
|
42
|
+
details: []
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
var details = [];
|
|
46
|
+
var _iterator = _createForOfIteratorHelper(mutationObjects),
|
|
47
|
+
_step;
|
|
48
|
+
try {
|
|
49
|
+
var _loop = function _loop() {
|
|
50
|
+
var obj = _step.value;
|
|
51
|
+
var objectKey = getNormalizationObjectKey(obj);
|
|
52
|
+
if (!objectKey) {
|
|
53
|
+
return 1; // continue
|
|
54
|
+
}
|
|
55
|
+
var normalizedKey = getId(objectKey);
|
|
56
|
+
var existingObject = normalizedState.objects[normalizedKey];
|
|
57
|
+
if (existingObject && hasFewerKeys(obj, existingObject)) {
|
|
58
|
+
var mutationKeys = Object.keys(obj);
|
|
59
|
+
var existingKeys = Object.keys(existingObject);
|
|
60
|
+
details.push({
|
|
61
|
+
id: objectKey,
|
|
62
|
+
missingKeys: existingKeys.filter(function (k) {
|
|
63
|
+
return !mutationKeys.includes(k);
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
69
|
+
if (_loop()) continue;
|
|
70
|
+
}
|
|
71
|
+
} catch (err) {
|
|
72
|
+
_iterator.e(err);
|
|
73
|
+
} finally {
|
|
74
|
+
_iterator.f();
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
needsRefetch: details.length > 0,
|
|
78
|
+
details: details
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
// #sourceMappingURL=checkMutationObjectsKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getId","hasFewerKeys","mutation","existing","mutationKeys","Object","keys","existingKeys","length","_i","_mutationKeys","key","includes","extractNormalizableObjects","data","getNormalizationObjectKey","objects","extract","item","Array","isArray","forEach","_typeof","Date","obj","push","checkMutationObjectsKeys","mutationData","normalizer","config","id","normalizedState","getNormalizedData","mutationObjects","needsRefetch","details","_iterator","_createForOfIteratorHelper","_step","_loop","value","objectKey","normalizedKey","existingObject","missingKeys","filter","k","s","n","done","err","e","f"],"sources":["checkMutationObjectsKeys.ts"],"sourcesContent":["import {getId} from '@normy/core';\n\nimport type {Normalizer} from '../../core';\n\ntype DataObject = Record<string, unknown>;\ntype NormalizableObject = DataObject & {id?: string};\n\nexport interface AffectedObject {\n id: string;\n missingKeys: string[];\n}\n\nexport interface MutationObjectsKeysResult {\n needsRefetch: boolean;\n details: AffectedObject[];\n}\n\nconst hasFewerKeys = (mutation: DataObject, existing: DataObject): boolean => {\n const mutationKeys = Object.keys(mutation);\n const existingKeys = Object.keys(existing);\n\n if (mutationKeys.length >= existingKeys.length) {\n return false;\n }\n\n for (const key of mutationKeys) {\n if (!existingKeys.includes(key)) {\n return true;\n }\n }\n\n return true;\n};\n\nconst extractNormalizableObjects = (\n data: unknown,\n getNormalizationObjectKey: (obj: NormalizableObject) => string | undefined,\n): NormalizableObject[] => {\n const objects: NormalizableObject[] = [];\n\n function extract(item: unknown): void {\n if (Array.isArray(item)) {\n item.forEach(extract);\n } else if (item !== null && typeof item === 'object' && !(item instanceof Date)) {\n const obj = item as NormalizableObject;\n\n if (getNormalizationObjectKey(obj)) {\n objects.push(obj);\n }\n }\n }\n\n extract(data);\n\n return objects;\n};\n\nexport const checkMutationObjectsKeys = (\n mutationData: unknown,\n normalizer: Normalizer,\n config?: {getNormalizationObjectKey?: (obj: NormalizableObject) => string | undefined},\n): MutationObjectsKeysResult => {\n const getNormalizationObjectKey =\n config?.getNormalizationObjectKey || ((obj: NormalizableObject) => obj.id);\n\n const normalizedState = normalizer.getNormalizedData();\n\n const mutationObjects = extractNormalizableObjects(mutationData, getNormalizationObjectKey);\n\n if (mutationObjects.length === 0) {\n return {\n needsRefetch: false,\n details: [],\n };\n }\n\n const details: AffectedObject[] = [];\n\n for (const obj of mutationObjects) {\n const objectKey = getNormalizationObjectKey(obj);\n\n if (!objectKey) {\n continue;\n }\n\n const normalizedKey = getId(objectKey);\n\n const existingObject = normalizedState.objects[normalizedKey] as DataObject | undefined;\n\n if (existingObject && hasFewerKeys(obj, existingObject)) {\n const mutationKeys = Object.keys(obj);\n const existingKeys = Object.keys(existingObject);\n\n details.push({\n id: objectKey,\n missingKeys: existingKeys.filter((k) => !mutationKeys.includes(k)),\n });\n }\n }\n\n return {\n needsRefetch: details.length > 0,\n details,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"names":["parseQueryKey","queryKeyString","JSON","parse"],"sources":["parseQueryKey.ts"],"sourcesContent":["import type {QueryKey} from '@tanstack/react-query';\n\nexport const parseQueryKey = (queryKeyString: string): QueryKey => {\n return JSON.parse(queryKeyString) as QueryKey;\n};\n"],"mappings":"AAEA,OAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,cAAsB,EAAe;EAC/D,OAAOC,IAAI,CAACC,KAAK,CAACF,cAAc,CAAC;AACrC,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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/data-source",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "A wrapper around data fetching",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"data-fetching",
|
|
@@ -43,6 +43,7 @@
|
|
|
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": {
|