@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
|
@@ -2,6 +2,7 @@ export type { DataSourceKey, DataSourceTag, DataSource, AnyDataSource, DataSourc
|
|
|
2
2
|
export type { DataManager } from './types/DataManager';
|
|
3
3
|
export type { DataLoaderStatus } from './types/DataLoaderStatus';
|
|
4
4
|
export type { InvalidateRepeatOptions, InvalidateOptions } from './types/DataManagerOptions';
|
|
5
|
+
export type { Normalizer, NormalizerConfig, OptimisticConfig } from './types/Normalizer';
|
|
5
6
|
export { idle } from './constants';
|
|
6
7
|
export { composeKey } from './utils/composeKey';
|
|
7
8
|
export { composeFullKey } from './utils/composeFullKey';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","_composeKey","_composeFullKey","_getError","_getStatus","_hasTag","_mergeStatuses","_skipContext","_withCatch","_withCancellation"],"sources":["index.ts"],"sourcesContent":["export type {\n DataSourceKey,\n DataSourceTag,\n DataSource,\n AnyDataSource,\n DataSourceContext,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceData,\n DataSourceError,\n DataSourceOptions,\n DataSourceState,\n DataSourceFetchContext,\n ActualParams,\n ActualData,\n} from './types/DataSource';\nexport type {DataManager} from './types/DataManager';\nexport type {DataLoaderStatus} from './types/DataLoaderStatus';\nexport type {InvalidateRepeatOptions, InvalidateOptions} from './types/DataManagerOptions';\n\nexport {idle} from './constants';\n\nexport {composeKey} from './utils/composeKey';\nexport {composeFullKey} from './utils/composeFullKey';\nexport {getError} from './utils/getError';\nexport {getStatus} from './utils/getStatus';\nexport {hasTag} from './utils/hasTag';\nexport {mergeStatuses} from './utils/mergeStatuses';\nexport {skipContext} from './utils/skipContext';\nexport {withCatch} from './utils/withCatch';\nexport type {Cancellable} from './utils/withCancellation';\nexport {isCancellable, isAbortable, withCancellation} from './utils/withCancellation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"names":["_constants","require","_composeKey","_composeFullKey","_getError","_getStatus","_hasTag","_mergeStatuses","_skipContext","_withCatch","_withCancellation"],"sources":["index.ts"],"sourcesContent":["export type {\n DataSourceKey,\n DataSourceTag,\n DataSource,\n AnyDataSource,\n DataSourceContext,\n DataSourceParams,\n DataSourceRequest,\n DataSourceResponse,\n DataSourceData,\n DataSourceError,\n DataSourceOptions,\n DataSourceState,\n DataSourceFetchContext,\n ActualParams,\n ActualData,\n} from './types/DataSource';\nexport type {DataManager} from './types/DataManager';\nexport type {DataLoaderStatus} from './types/DataLoaderStatus';\nexport type {InvalidateRepeatOptions, InvalidateOptions} from './types/DataManagerOptions';\nexport type {Normalizer, NormalizerConfig, OptimisticConfig} from './types/Normalizer';\n\nexport {idle} from './constants';\n\nexport {composeKey} from './utils/composeKey';\nexport {composeFullKey} from './utils/composeFullKey';\nexport {getError} from './utils/getError';\nexport {getStatus} from './utils/getStatus';\nexport {hasTag} from './utils/hasTag';\nexport {mergeStatuses} from './utils/mergeStatuses';\nexport {skipContext} from './utils/skipContext';\nexport {withCatch} from './utils/withCatch';\nexport type {Cancellable} from './utils/withCancellation';\nexport {isCancellable, isAbortable, withCancellation} from './utils/withCancellation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAEA,IAAAS,iBAAA,GAAAT,OAAA","ignoreList":[]}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import type { Data } from '@normy/core';
|
|
1
2
|
import type { InvalidateOptions } from './DataManagerOptions';
|
|
2
3
|
import type { AnyDataSource, DataSourceParams, DataSourceTag } from './DataSource';
|
|
4
|
+
import type { Normalizer } from './Normalizer';
|
|
3
5
|
export interface DataManager {
|
|
6
|
+
normalizer?: Normalizer;
|
|
7
|
+
optimisticUpdate(mutationData: Data): void;
|
|
8
|
+
invalidateData(data: Data): void;
|
|
4
9
|
invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
5
10
|
invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
6
11
|
invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["DataManager.ts"],"sourcesContent":["import type {InvalidateOptions} from './DataManagerOptions';\nimport type {AnyDataSource, DataSourceParams, DataSourceTag} from './DataSource';\n\nexport interface DataManager {\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ): Promise<void>;\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["DataManager.ts"],"sourcesContent":["import type {Data} from '@normy/core';\n\nimport type {InvalidateOptions} from './DataManagerOptions';\nimport type {AnyDataSource, DataSourceParams, DataSourceTag} from './DataSource';\nimport type {Normalizer} from './Normalizer';\n\nexport interface DataManager {\n normalizer?: Normalizer;\n\n optimisticUpdate(mutationData: Data): void;\n\n invalidateData(data: Data): void;\n\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ): Promise<void>;\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { NormalizerConfig as NormalizeConfigBase } from '@normy/core';
|
|
2
|
+
import type { Data, NormalizedData } from '@normy/core/types/types';
|
|
3
|
+
export interface OptimisticConfig {
|
|
4
|
+
/** Automatically calculate rollback data, defaults to true */
|
|
5
|
+
autoCalculateRollback?: boolean;
|
|
6
|
+
/** Whether debug logging is enabled */
|
|
7
|
+
devLogging?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface NormalizerConfig extends NormalizeConfigBase {
|
|
10
|
+
initialData?: NormalizedData;
|
|
11
|
+
optimistic?: boolean | OptimisticConfig;
|
|
12
|
+
invalidate?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface Normalizer {
|
|
15
|
+
getNormalizedData: () => NormalizedData;
|
|
16
|
+
clearNormalizedData: () => void;
|
|
17
|
+
setQuery: (queryKey: string, queryData: Data) => void;
|
|
18
|
+
removeQuery: (queryKey: string) => void;
|
|
19
|
+
getQueriesToUpdate: (mutationData: Data) => {
|
|
20
|
+
queryKey: string;
|
|
21
|
+
data: Data;
|
|
22
|
+
}[];
|
|
23
|
+
getObjectById: <T extends Data>(id: string, exampleObject?: T) => T | undefined;
|
|
24
|
+
getQueryFragment: <T extends Data>(fragment: Data, exampleObject?: T) => T | undefined;
|
|
25
|
+
getDependentQueries: (mutationData: Data) => readonly string[];
|
|
26
|
+
getDependentQueriesByIds: (ids: ReadonlyArray<string>) => readonly string[];
|
|
27
|
+
getCurrentData: <T extends Data>(newData: T) => T | undefined;
|
|
28
|
+
log: (...messages: unknown[]) => void;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["Normalizer.ts"],"sourcesContent":["import type {NormalizerConfig as NormalizeConfigBase} from '@normy/core';\nimport type {Data, NormalizedData} from '@normy/core/types/types';\n\nexport interface OptimisticConfig {\n /** Automatically calculate rollback data, defaults to true */\n autoCalculateRollback?: boolean;\n /** Whether debug logging is enabled */\n devLogging?: boolean;\n}\n\nexport interface NormalizerConfig extends NormalizeConfigBase {\n initialData?: NormalizedData;\n optimistic?: boolean | OptimisticConfig;\n invalidate?: boolean;\n}\n\nexport interface Normalizer {\n getNormalizedData: () => NormalizedData;\n clearNormalizedData: () => void;\n setQuery: (queryKey: string, queryData: Data) => void;\n removeQuery: (queryKey: string) => void;\n getQueriesToUpdate: (mutationData: Data) => {\n queryKey: string;\n data: Data;\n }[];\n getObjectById: <T extends Data>(id: string, exampleObject?: T) => T | undefined;\n getQueryFragment: <T extends Data>(fragment: Data, exampleObject?: T) => T | undefined;\n getDependentQueries: (mutationData: Data) => readonly string[];\n getDependentQueriesByIds: (ids: ReadonlyArray<string>) => readonly string[];\n getCurrentData: <T extends Data>(newData: T) => T | undefined;\n log: (...messages: unknown[]) => void;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DataManagerProvider = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _DataManagerContext = require("./DataManagerContext");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
var DataManagerProvider = exports.DataManagerProvider = function DataManagerProvider(_ref) {
|
|
12
|
+
var children = _ref.children,
|
|
13
|
+
dataManager = _ref.dataManager;
|
|
14
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataManagerContext.DataManagerContext.Provider, {
|
|
15
|
+
value: dataManager,
|
|
16
|
+
children: children
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
// #sourceMappingURL=DataManagerProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_DataManagerContext","_jsxRuntime","e","__esModule","default","DataManagerProvider","exports","_ref","children","dataManager","_jsx","DataManagerContext","Provider","value"],"sources":["DataManagerProvider.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {DataManager} from '../core';\n\nimport {DataManagerContext} from './DataManagerContext';\n\nexport interface DataManagerProviderProps {\n children: React.ReactNode;\n dataManager: DataManager;\n}\n\nexport const DataManagerProvider: React.FC<DataManagerProviderProps> = ({\n children,\n dataManager,\n}) => {\n return (\n <DataManagerContext.Provider value={dataManager}>{children}</DataManagerContext.Provider>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAAwD,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOjD,IAAMG,mBAAuD,GAAAC,OAAA,CAAAD,mBAAA,GAAG,SAA1DA,mBAAuDA,CAAAE,IAAA,EAG9D;EAAA,IAFFC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,WAAW,GAAAF,IAAA,CAAXE,WAAW;EAEX,oBACI,IAAAC,eAAA,EAACC,sCAAkB,CAACC,QAAQ;IAACC,KAAK,EAAEJ,WAAY;IAAAD,QAAA,EAAEA;EAAQ,CAA8B,CAAC;AAEjG,CAAC","ignoreList":[]}
|
|
@@ -8,6 +8,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
8
8
|
describe('useDataManager', function () {
|
|
9
9
|
it('should return dataManager from context', function () {
|
|
10
10
|
var mockDataManager = {
|
|
11
|
+
normalizer: undefined,
|
|
12
|
+
optimisticUpdate: jest.fn(),
|
|
13
|
+
invalidateData: jest.fn(),
|
|
11
14
|
invalidateTag: jest.fn(),
|
|
12
15
|
invalidateTags: jest.fn(),
|
|
13
16
|
invalidateSource: jest.fn(),
|
|
@@ -32,15 +35,13 @@ describe('useDataManager', function () {
|
|
|
32
35
|
expect(result.current).toBe(mockDataManager);
|
|
33
36
|
});
|
|
34
37
|
it('should throw an error when dataManager is not provided', function () {
|
|
35
|
-
|
|
38
|
+
var consoleSpy = jest.spyOn(console, 'error').mockImplementation();
|
|
39
|
+
expect(function () {
|
|
36
40
|
(0, _react2.renderHook)(function () {
|
|
37
41
|
return (0, _DataManagerContext.useDataManager)();
|
|
38
42
|
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Just to be sure that the error is from the right place
|
|
42
|
-
expect(error.message).toBe('DataManager is not provided by context. Use DataManagerContext.Provider to do it');
|
|
43
|
-
}
|
|
43
|
+
}).toThrow('DataManager is not provided by context. Use DataManagerContext.Provider to do it');
|
|
44
|
+
consoleSpy.mockRestore();
|
|
44
45
|
});
|
|
45
46
|
});
|
|
46
47
|
// #sourceMappingURL=DataManagerContext.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_react2","_DataManagerContext","_jsxRuntime","e","__esModule","default","describe","it","mockDataManager","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_react2","_DataManagerContext","_jsxRuntime","e","__esModule","default","describe","it","mockDataManager","normalizer","undefined","optimisticUpdate","jest","fn","invalidateData","invalidateTag","invalidateTags","invalidateSource","resetSource","invalidateParams","resetParams","invalidateSourceTags","wrapper","_ref","children","_jsx","DataManagerContext","Provider","value","_renderHook","renderHook","useDataManager","result","expect","current","toBe","consoleSpy","spyOn","console","mockImplementation","toThrow","mockRestore"],"sources":["DataManagerContext.test.tsx"],"sourcesContent":["import React from 'react';\n\nimport {renderHook} from '@testing-library/react';\n\nimport type {DataManager} from '../../core';\nimport {DataManagerContext, useDataManager} from '../DataManagerContext';\n\ndescribe('useDataManager', () => {\n it('should return dataManager from context', () => {\n const mockDataManager: DataManager = {\n normalizer: undefined,\n optimisticUpdate: jest.fn(),\n invalidateData: jest.fn(),\n invalidateTag: jest.fn(),\n invalidateTags: jest.fn(),\n invalidateSource: jest.fn(),\n resetSource: jest.fn(),\n invalidateParams: jest.fn(),\n resetParams: jest.fn(),\n invalidateSourceTags: jest.fn(),\n };\n\n const wrapper: React.FC<{children: React.ReactNode}> = ({children}) => (\n <DataManagerContext.Provider value={mockDataManager}>\n {children}\n </DataManagerContext.Provider>\n );\n\n const {result} = renderHook(() => useDataManager(), {wrapper});\n\n expect(result.current).toBe(mockDataManager);\n });\n\n it('should throw an error when dataManager is not provided', () => {\n const consoleSpy = jest.spyOn(console, 'error').mockImplementation();\n\n expect(() => {\n renderHook(() => useDataManager());\n }).toThrow(\n 'DataManager is not provided by context. Use DataManagerContext.Provider to do it',\n );\n\n consoleSpy.mockRestore();\n });\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,mBAAA,GAAAF,OAAA;AAAyE,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEzEG,QAAQ,CAAC,gBAAgB,EAAE,YAAM;EAC7BC,EAAE,CAAC,wCAAwC,EAAE,YAAM;IAC/C,IAAMC,eAA4B,GAAG;MACjCC,UAAU,EAAEC,SAAS;MACrBC,gBAAgB,EAAEC,IAAI,CAACC,EAAE,CAAC,CAAC;MAC3BC,cAAc,EAAEF,IAAI,CAACC,EAAE,CAAC,CAAC;MACzBE,aAAa,EAAEH,IAAI,CAACC,EAAE,CAAC,CAAC;MACxBG,cAAc,EAAEJ,IAAI,CAACC,EAAE,CAAC,CAAC;MACzBI,gBAAgB,EAAEL,IAAI,CAACC,EAAE,CAAC,CAAC;MAC3BK,WAAW,EAAEN,IAAI,CAACC,EAAE,CAAC,CAAC;MACtBM,gBAAgB,EAAEP,IAAI,CAACC,EAAE,CAAC,CAAC;MAC3BO,WAAW,EAAER,IAAI,CAACC,EAAE,CAAC,CAAC;MACtBQ,oBAAoB,EAAET,IAAI,CAACC,EAAE,CAAC;IAClC,CAAC;IAED,IAAMS,OAA8C,GAAG,SAAjDA,OAA8CA,CAAAC,IAAA;MAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAA,oBAC7D,IAAAC,eAAA,EAACC,sCAAkB,CAACC,QAAQ;QAACC,KAAK,EAAEpB,eAAgB;QAAAgB,QAAA,EAC/CA;MAAQ,CACgB,CAAC;IAAA,CACjC;IAED,IAAAK,WAAA,GAAiB,IAAAC,kBAAU,EAAC;QAAA,OAAM,IAAAC,kCAAc,EAAC,CAAC;MAAA,GAAE;QAACT,OAAO,EAAPA;MAAO,CAAC,CAAC;MAAvDU,MAAM,GAAAH,WAAA,CAANG,MAAM;IAEbC,MAAM,CAACD,MAAM,CAACE,OAAO,CAAC,CAACC,IAAI,CAAC3B,eAAe,CAAC;EAChD,CAAC,CAAC;EAEFD,EAAE,CAAC,wDAAwD,EAAE,YAAM;IAC/D,IAAM6B,UAAU,GAAGxB,IAAI,CAACyB,KAAK,CAACC,OAAO,EAAE,OAAO,CAAC,CAACC,kBAAkB,CAAC,CAAC;IAEpEN,MAAM,CAAC,YAAM;MACT,IAAAH,kBAAU,EAAC;QAAA,OAAM,IAAAC,kCAAc,EAAC,CAAC;MAAA,EAAC;IACtC,CAAC,CAAC,CAACS,OAAO,CACN,kFACJ,CAAC;IAEDJ,UAAU,CAACK,WAAW,CAAC,CAAC;EAC5B,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -15,6 +15,9 @@ jest.mock('../DataManagerContext', function () {
|
|
|
15
15
|
});
|
|
16
16
|
describe('withDataManager', function () {
|
|
17
17
|
var mockDataManager = {
|
|
18
|
+
normalizer: undefined,
|
|
19
|
+
optimisticUpdate: jest.fn(),
|
|
20
|
+
invalidateData: jest.fn(),
|
|
18
21
|
invalidateTag: jest.fn(),
|
|
19
22
|
invalidateTags: jest.fn(),
|
|
20
23
|
invalidateSource: jest.fn(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_react2","_DataManagerContext","_withDataManager","_jsxRuntime","e","__esModule","default","jest","mock","originalModule","requireActual","_objectSpread","useDataManager","fn","describe","mockDataManager","invalidateTag","invalidateTags","invalidateSource","resetSource","invalidateParams","resetParams","invalidateSourceTags","beforeEach","clearAllMocks","mockReturnValue","it","TestComponent","_ref","dataManager","_jsx","children","WrappedComponent","withDataManager","render","expect","screen","getByTestId","toHaveTextContent","_ref2","testProp","concat"],"sources":["withDataManager.test.tsx"],"sourcesContent":["import React from 'react';\n\nimport {render, screen} from '@testing-library/react';\n\nimport type {DataManager} from '../../core';\nimport {useDataManager} from '../DataManagerContext';\nimport type {WithDataManagerProps} from '../withDataManager';\nimport {withDataManager} from '../withDataManager';\n\njest.mock('../DataManagerContext', () => {\n const originalModule = jest.requireActual('../DataManagerContext');\n return {\n ...originalModule,\n useDataManager: jest.fn(),\n };\n});\n\ndescribe('withDataManager', () => {\n const mockDataManager: DataManager = {\n invalidateTag: jest.fn(),\n invalidateTags: jest.fn(),\n invalidateSource: jest.fn(),\n resetSource: jest.fn(),\n invalidateParams: jest.fn(),\n resetParams: jest.fn(),\n invalidateSourceTags: jest.fn(),\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n\n (useDataManager as jest.Mock).mockReturnValue(mockDataManager);\n });\n\n it('should pass dataManager to wrapped component', () => {\n const TestComponent: React.FC<WithDataManagerProps> = ({dataManager}) => (\n <div data-testid=\"test-component\">\n {dataManager ? 'DataManager provided' : 'No DataManager'}\n </div>\n );\n const WrappedComponent = withDataManager(TestComponent);\n\n render(<WrappedComponent />);\n\n expect(screen.getByTestId('test-component')).toHaveTextContent('DataManager provided');\n });\n\n it('should pass through additional props', () => {\n const TestComponent: React.FC<WithDataManagerProps & {testProp: string}> = ({\n dataManager,\n testProp,\n }) => (\n <div data-testid=\"test-component\">\n {dataManager ? `DataManager provided, testProp: ${testProp}` : 'No DataManager'}\n </div>\n );\n const WrappedComponent = withDataManager(TestComponent);\n\n render(<WrappedComponent testProp=\"test value\" />);\n\n expect(screen.getByTestId('test-component')).toHaveTextContent(\n 'DataManager provided, testProp: test value',\n );\n });\n});\n"],"mappings":";;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,mBAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AAAmD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnDG,IAAI,CAACC,IAAI,CAAC,uBAAuB,EAAE,YAAM;EACrC,IAAMC,cAAc,GAAGF,IAAI,CAACG,aAAa,CAAC,uBAAuB,CAAC;EAClE,WAAAC,sBAAA,MAAAA,sBAAA,MACOF,cAAc;IACjBG,cAAc,EAAEL,IAAI,CAACM,EAAE,CAAC;EAAC;AAEjC,CAAC,CAAC;AAEFC,QAAQ,CAAC,iBAAiB,EAAE,YAAM;EAC9B,IAAMC,eAA4B,GAAG;IACjCC,aAAa,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_react2","_DataManagerContext","_withDataManager","_jsxRuntime","e","__esModule","default","jest","mock","originalModule","requireActual","_objectSpread","useDataManager","fn","describe","mockDataManager","normalizer","undefined","optimisticUpdate","invalidateData","invalidateTag","invalidateTags","invalidateSource","resetSource","invalidateParams","resetParams","invalidateSourceTags","beforeEach","clearAllMocks","mockReturnValue","it","TestComponent","_ref","dataManager","_jsx","children","WrappedComponent","withDataManager","render","expect","screen","getByTestId","toHaveTextContent","_ref2","testProp","concat"],"sources":["withDataManager.test.tsx"],"sourcesContent":["import React from 'react';\n\nimport {render, screen} from '@testing-library/react';\n\nimport type {DataManager} from '../../core';\nimport {useDataManager} from '../DataManagerContext';\nimport type {WithDataManagerProps} from '../withDataManager';\nimport {withDataManager} from '../withDataManager';\n\njest.mock('../DataManagerContext', () => {\n const originalModule = jest.requireActual('../DataManagerContext');\n return {\n ...originalModule,\n useDataManager: jest.fn(),\n };\n});\n\ndescribe('withDataManager', () => {\n const mockDataManager: DataManager = {\n normalizer: undefined,\n optimisticUpdate: jest.fn(),\n invalidateData: jest.fn(),\n invalidateTag: jest.fn(),\n invalidateTags: jest.fn(),\n invalidateSource: jest.fn(),\n resetSource: jest.fn(),\n invalidateParams: jest.fn(),\n resetParams: jest.fn(),\n invalidateSourceTags: jest.fn(),\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n\n (useDataManager as jest.Mock).mockReturnValue(mockDataManager);\n });\n\n it('should pass dataManager to wrapped component', () => {\n const TestComponent: React.FC<WithDataManagerProps> = ({dataManager}) => (\n <div data-testid=\"test-component\">\n {dataManager ? 'DataManager provided' : 'No DataManager'}\n </div>\n );\n const WrappedComponent = withDataManager(TestComponent);\n\n render(<WrappedComponent />);\n\n expect(screen.getByTestId('test-component')).toHaveTextContent('DataManager provided');\n });\n\n it('should pass through additional props', () => {\n const TestComponent: React.FC<WithDataManagerProps & {testProp: string}> = ({\n dataManager,\n testProp,\n }) => (\n <div data-testid=\"test-component\">\n {dataManager ? `DataManager provided, testProp: ${testProp}` : 'No DataManager'}\n </div>\n );\n const WrappedComponent = withDataManager(TestComponent);\n\n render(<WrappedComponent testProp=\"test value\" />);\n\n expect(screen.getByTestId('test-component')).toHaveTextContent(\n 'DataManager provided, testProp: test value',\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { DataManagerContext, useDataManager } from './DataManagerContext';
|
|
2
|
+
export { DataManagerProvider } from './DataManagerProvider';
|
|
3
|
+
export type { DataManagerProviderProps } from './DataManagerProvider';
|
|
2
4
|
export type { WithDataManagerProps } from './withDataManager';
|
|
3
5
|
export { withDataManager } from './withDataManager';
|
|
4
6
|
export type { ErrorAction, ErrorViewProps } from './components/types';
|
package/build/cjs/react/index.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
var _exportNames = {
|
|
7
7
|
DataManagerContext: true,
|
|
8
8
|
useDataManager: true,
|
|
9
|
+
DataManagerProvider: true,
|
|
9
10
|
withDataManager: true
|
|
10
11
|
};
|
|
11
12
|
Object.defineProperty(exports, "DataManagerContext", {
|
|
@@ -14,6 +15,12 @@ Object.defineProperty(exports, "DataManagerContext", {
|
|
|
14
15
|
return _DataManagerContext.DataManagerContext;
|
|
15
16
|
}
|
|
16
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "DataManagerProvider", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _DataManagerProvider.DataManagerProvider;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
17
24
|
Object.defineProperty(exports, "useDataManager", {
|
|
18
25
|
enumerable: true,
|
|
19
26
|
get: function () {
|
|
@@ -27,6 +34,7 @@ Object.defineProperty(exports, "withDataManager", {
|
|
|
27
34
|
}
|
|
28
35
|
});
|
|
29
36
|
var _DataManagerContext = require("./DataManagerContext");
|
|
37
|
+
var _DataManagerProvider = require("./DataManagerProvider");
|
|
30
38
|
var _withDataManager = require("./withDataManager");
|
|
31
39
|
var _DataLoader = require("./components/DataLoader");
|
|
32
40
|
Object.keys(_DataLoader).forEach(function (key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DataManagerContext","require","_withDataManager","_DataLoader","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_DataInfiniteLoader"],"sources":["index.ts"],"sourcesContent":["export {DataManagerContext, useDataManager} from './DataManagerContext';\n\nexport type {WithDataManagerProps} from './withDataManager';\nexport {withDataManager} from './withDataManager';\n\nexport type {ErrorAction, ErrorViewProps} from './components/types';\nexport * from './components/DataLoader';\nexport * from './components/DataInfiniteLoader';\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_DataManagerContext","require","_DataManagerProvider","_withDataManager","_DataLoader","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_DataInfiniteLoader"],"sources":["index.ts"],"sourcesContent":["export {DataManagerContext, useDataManager} from './DataManagerContext';\nexport {DataManagerProvider} from './DataManagerProvider';\nexport type {DataManagerProviderProps} from './DataManagerProvider';\n\nexport type {WithDataManagerProps} from './withDataManager';\nexport {withDataManager} from './withDataManager';\n\nexport type {ErrorAction, ErrorViewProps} from './components/types';\nexport * from './components/DataLoader';\nexport * from './components/DataInfiniteLoader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAIA,IAAAE,gBAAA,GAAAF,OAAA;AAGA,IAAAG,WAAA,GAAAH,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAF,WAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,WAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,WAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,mBAAA,GAAAhB,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAW,mBAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,mBAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,mBAAA,CAAAT,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Data } from '@normy/core';
|
|
2
|
+
import type { InvalidateQueryFilters, QueryClientConfig, QueryKey } from '@tanstack/react-query';
|
|
2
3
|
import { QueryClient } from '@tanstack/react-query';
|
|
3
|
-
import { type AnyDataSource, type DataManager, type DataSourceParams, type DataSourceTag } from '../core';
|
|
4
|
+
import { type AnyDataSource, type DataManager, type DataSourceParams, type DataSourceTag, type Normalizer, type NormalizerConfig } from '../core';
|
|
4
5
|
import type { InvalidateOptions, InvalidateRepeatOptions } from '../core/types/DataManagerOptions';
|
|
5
|
-
|
|
6
|
+
import type { QueryNormalizer } from './types/normalizer';
|
|
7
|
+
export interface ClientDataManagerConfig extends QueryClientConfig {
|
|
8
|
+
normalizerConfig?: NormalizerConfig | boolean;
|
|
9
|
+
}
|
|
6
10
|
export declare class ClientDataManager implements DataManager {
|
|
7
11
|
readonly queryClient: QueryClient;
|
|
12
|
+
readonly normalizer?: Normalizer | undefined;
|
|
13
|
+
readonly queryNormalizer?: QueryNormalizer | undefined;
|
|
14
|
+
readonly normalizerConfig?: NormalizerConfig | boolean;
|
|
8
15
|
constructor(config?: ClientDataManagerConfig);
|
|
16
|
+
optimisticUpdate(mutationData: Data, queryKey?: QueryKey, queryData?: Data): void;
|
|
17
|
+
invalidateData(data: Data, queryKey?: QueryKey): void;
|
|
18
|
+
update(data: Data): void;
|
|
9
19
|
invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
10
20
|
invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
11
21
|
invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
@@ -15,4 +25,7 @@ export declare class ClientDataManager implements DataManager {
|
|
|
15
25
|
invalidateSourceTags<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
16
26
|
protected invalidateQueries(filters: InvalidateQueryFilters, invalidateOptions?: InvalidateOptions): Promise<void>;
|
|
17
27
|
protected repeatInvalidate(invalidate: () => Promise<void>, repeat?: InvalidateRepeatOptions): void;
|
|
28
|
+
private createNormalize;
|
|
29
|
+
private invalidateQuery;
|
|
30
|
+
private optimisticUpdateQuery;
|
|
18
31
|
}
|
|
@@ -4,18 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ClientDataManager = void 0;
|
|
7
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
7
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _core = require("@normy/core");
|
|
10
12
|
var _reactQuery = require("@tanstack/react-query");
|
|
11
|
-
var
|
|
13
|
+
var _core2 = require("../core");
|
|
14
|
+
var _checkMutationObjectsKeys = require("./utils/checkMutationObjectsKeys");
|
|
15
|
+
var _normalize = require("./utils/normalize");
|
|
16
|
+
var _parseQueryKey = require("./utils/parseQueryKey");
|
|
12
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
18
|
var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
|
|
14
19
|
function ClientDataManager() {
|
|
15
|
-
var _config$defaultOption,
|
|
20
|
+
var _config$defaultOption,
|
|
21
|
+
_config$defaultOption2,
|
|
22
|
+
_this = this;
|
|
16
23
|
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
17
24
|
(0, _classCallCheck2.default)(this, ClientDataManager);
|
|
18
25
|
this.queryClient = void 0;
|
|
26
|
+
this.normalizer = void 0;
|
|
27
|
+
this.queryNormalizer = void 0;
|
|
28
|
+
this.normalizerConfig = void 0;
|
|
29
|
+
this.normalizerConfig = config.normalizerConfig;
|
|
19
30
|
this.queryClient = new _reactQuery.QueryClient((0, _objectSpread2.default)((0, _objectSpread2.default)({}, config), {}, {
|
|
20
31
|
defaultOptions: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config.defaultOptions), {}, {
|
|
21
32
|
queries: (0, _objectSpread2.default)({
|
|
@@ -26,14 +37,104 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
|
|
|
26
37
|
}, (_config$defaultOption2 = config.defaultOptions) === null || _config$defaultOption2 === void 0 ? void 0 : _config$defaultOption2.mutations)
|
|
27
38
|
})
|
|
28
39
|
}));
|
|
40
|
+
this.normalizer = this.createNormalize(config.normalizerConfig);
|
|
41
|
+
this.queryNormalizer = (0, _normalize.createQueryNormalizer)(this.normalizer, this.queryClient, config.normalizerConfig, function (data) {
|
|
42
|
+
return _this.optimisticUpdate(data);
|
|
43
|
+
}, function (data) {
|
|
44
|
+
return _this.invalidateData(data);
|
|
45
|
+
});
|
|
29
46
|
}
|
|
30
47
|
return (0, _createClass2.default)(ClientDataManager, [{
|
|
48
|
+
key: "optimisticUpdate",
|
|
49
|
+
value: function optimisticUpdate(mutationData, queryKey, queryData) {
|
|
50
|
+
var _this2 = this;
|
|
51
|
+
if (!this.normalizer) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (queryKey && queryData) {
|
|
55
|
+
this.optimisticUpdateQuery(queryKey, queryData);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
var queriesToUpdate = this.normalizer.getQueriesToUpdate(mutationData);
|
|
59
|
+
queriesToUpdate.forEach(function (query) {
|
|
60
|
+
var parsedQueryKey = (0, _parseQueryKey.parseQueryKey)(query.queryKey);
|
|
61
|
+
_this2.optimisticUpdateQuery(parsedQueryKey, query.data);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
key: "invalidateData",
|
|
66
|
+
value: function invalidateData(data, queryKey) {
|
|
67
|
+
var _this3 = this;
|
|
68
|
+
if (!this.normalizer) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (queryKey) {
|
|
72
|
+
this.invalidateQuery(queryKey);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
var queriesToUpdate = this.normalizer.getQueriesToUpdate(data);
|
|
76
|
+
queriesToUpdate.forEach(function (query) {
|
|
77
|
+
var parsedQueryKey = (0, _parseQueryKey.parseQueryKey)(query.queryKey);
|
|
78
|
+
_this3.invalidateQuery(parsedQueryKey);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}, {
|
|
82
|
+
key: "update",
|
|
83
|
+
value: function update(data) {
|
|
84
|
+
var _this4 = this;
|
|
85
|
+
if (!this.normalizer) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
var _ref = (0, _typeof2.default)(this.normalizerConfig) === 'object' ? this.normalizerConfig : {
|
|
89
|
+
optimistic: false,
|
|
90
|
+
invalidate: false
|
|
91
|
+
},
|
|
92
|
+
globalOptimistic = _ref.optimistic,
|
|
93
|
+
globalInvalidate = _ref.invalidate;
|
|
94
|
+
var queriesToUpdate = this.normalizer.getQueriesToUpdate(data);
|
|
95
|
+
if (queriesToUpdate.length === 0) {
|
|
96
|
+
var completeness = (0, _checkMutationObjectsKeys.checkMutationObjectsKeys)(data, this.normalizer);
|
|
97
|
+
var dependentQueries = this.normalizer.getDependentQueries(data);
|
|
98
|
+
if (completeness.needsRefetch) {
|
|
99
|
+
dependentQueries.forEach(function (queryKeyString) {
|
|
100
|
+
var _cachedQuery$meta;
|
|
101
|
+
var parsedQueryKey = (0, _parseQueryKey.parseQueryKey)(queryKeyString);
|
|
102
|
+
var cachedQuery = _this4.queryClient.getQueryCache().find({
|
|
103
|
+
queryKey: parsedQueryKey
|
|
104
|
+
});
|
|
105
|
+
var _ref2 = (_cachedQuery$meta = cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.meta) !== null && _cachedQuery$meta !== void 0 ? _cachedQuery$meta : {},
|
|
106
|
+
invalidate = _ref2.invalidate;
|
|
107
|
+
if (invalidate === true || invalidate === undefined && globalInvalidate === true) {
|
|
108
|
+
_this4.invalidateData(data, parsedQueryKey);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
queriesToUpdate.forEach(function (query) {
|
|
115
|
+
var _cachedQuery$meta2;
|
|
116
|
+
var parsedQueryKey = (0, _parseQueryKey.parseQueryKey)(query.queryKey);
|
|
117
|
+
var cachedQuery = _this4.queryClient.getQueryCache().find({
|
|
118
|
+
queryKey: parsedQueryKey
|
|
119
|
+
});
|
|
120
|
+
var _ref3 = (_cachedQuery$meta2 = cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.meta) !== null && _cachedQuery$meta2 !== void 0 ? _cachedQuery$meta2 : {},
|
|
121
|
+
optimistic = _ref3.optimistic,
|
|
122
|
+
invalidate = _ref3.invalidate;
|
|
123
|
+
if (optimistic === true || optimistic === undefined && globalOptimistic === true) {
|
|
124
|
+
_this4.optimisticUpdate(data, parsedQueryKey, query.data);
|
|
125
|
+
}
|
|
126
|
+
if (invalidate === true || invalidate === undefined && globalInvalidate === true) {
|
|
127
|
+
_this4.invalidateData(data, parsedQueryKey);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}, {
|
|
31
132
|
key: "invalidateTag",
|
|
32
133
|
value: function invalidateTag(tag, invalidateOptions) {
|
|
33
134
|
return this.invalidateQueries({
|
|
34
|
-
predicate: function predicate(
|
|
35
|
-
var queryKey =
|
|
36
|
-
return (0,
|
|
135
|
+
predicate: function predicate(_ref4) {
|
|
136
|
+
var queryKey = _ref4.queryKey;
|
|
137
|
+
return (0, _core2.hasTag)(queryKey, tag);
|
|
37
138
|
}
|
|
38
139
|
}, invalidateOptions);
|
|
39
140
|
}
|
|
@@ -41,10 +142,10 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
|
|
|
41
142
|
key: "invalidateTags",
|
|
42
143
|
value: function invalidateTags(tags, invalidateOptions) {
|
|
43
144
|
return this.invalidateQueries({
|
|
44
|
-
predicate: function predicate(
|
|
45
|
-
var queryKey =
|
|
145
|
+
predicate: function predicate(_ref5) {
|
|
146
|
+
var queryKey = _ref5.queryKey;
|
|
46
147
|
return tags.every(function (tag) {
|
|
47
|
-
return (0,
|
|
148
|
+
return (0, _core2.hasTag)(queryKey, tag);
|
|
48
149
|
});
|
|
49
150
|
}
|
|
50
151
|
}, invalidateOptions);
|
|
@@ -69,7 +170,7 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
|
|
|
69
170
|
key: "invalidateParams",
|
|
70
171
|
value: function invalidateParams(dataSource, params, invalidateOptions) {
|
|
71
172
|
return this.invalidateQueries({
|
|
72
|
-
queryKey: (0,
|
|
173
|
+
queryKey: (0, _core2.composeFullKey)(dataSource, params),
|
|
73
174
|
exact: true
|
|
74
175
|
}, invalidateOptions);
|
|
75
176
|
}
|
|
@@ -77,7 +178,7 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
|
|
|
77
178
|
key: "resetParams",
|
|
78
179
|
value: function resetParams(dataSource, params) {
|
|
79
180
|
return this.queryClient.resetQueries({
|
|
80
|
-
queryKey: (0,
|
|
181
|
+
queryKey: (0, _core2.composeFullKey)(dataSource, params),
|
|
81
182
|
exact: true
|
|
82
183
|
});
|
|
83
184
|
}
|
|
@@ -86,15 +187,15 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
|
|
|
86
187
|
value: function invalidateSourceTags(dataSource, params, invalidateOptions) {
|
|
87
188
|
return this.invalidateQueries({
|
|
88
189
|
// Last element is a full key
|
|
89
|
-
queryKey: (0,
|
|
190
|
+
queryKey: (0, _core2.composeFullKey)(dataSource, params).slice(0, -1)
|
|
90
191
|
}, invalidateOptions);
|
|
91
192
|
}
|
|
92
193
|
}, {
|
|
93
194
|
key: "invalidateQueries",
|
|
94
195
|
value: function invalidateQueries(filters, invalidateOptions) {
|
|
95
|
-
var
|
|
196
|
+
var _this5 = this;
|
|
96
197
|
var invalidate = function invalidate() {
|
|
97
|
-
return
|
|
198
|
+
return _this5.queryClient.invalidateQueries(filters);
|
|
98
199
|
};
|
|
99
200
|
this.repeatInvalidate(invalidate, invalidateOptions === null || invalidateOptions === void 0 ? void 0 : invalidateOptions.repeat);
|
|
100
201
|
return invalidate();
|
|
@@ -109,6 +210,50 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
|
|
|
109
210
|
setTimeout(invalidate, repeat.interval * i);
|
|
110
211
|
}
|
|
111
212
|
}
|
|
213
|
+
}, {
|
|
214
|
+
key: "createNormalize",
|
|
215
|
+
value: function createNormalize(config) {
|
|
216
|
+
if (!config) {
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
if (config === true) {
|
|
220
|
+
return (0, _core.createNormalizer)({});
|
|
221
|
+
}
|
|
222
|
+
return (0, _core.createNormalizer)(config);
|
|
223
|
+
}
|
|
224
|
+
}, {
|
|
225
|
+
key: "invalidateQuery",
|
|
226
|
+
value: function invalidateQuery(queryKey) {
|
|
227
|
+
var cachedQuery = this.queryClient.getQueryCache().find({
|
|
228
|
+
queryKey: queryKey
|
|
229
|
+
});
|
|
230
|
+
if ((cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.state.fetchStatus) !== 'fetching' && (cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.state.status) === 'success' && !(cachedQuery !== null && cachedQuery !== void 0 && cachedQuery.state.isInvalidated)) {
|
|
231
|
+
this.queryClient.invalidateQueries({
|
|
232
|
+
queryKey: queryKey
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}, {
|
|
237
|
+
key: "optimisticUpdateQuery",
|
|
238
|
+
value: function optimisticUpdateQuery(queryKey, queryData) {
|
|
239
|
+
var cachedQuery = this.queryClient.getQueryCache().find({
|
|
240
|
+
queryKey: queryKey
|
|
241
|
+
});
|
|
242
|
+
var dataUpdatedAt = cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.state.dataUpdatedAt;
|
|
243
|
+
var isInvalidated = cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.state.isInvalidated;
|
|
244
|
+
var error = cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.state.error;
|
|
245
|
+
var status = cachedQuery === null || cachedQuery === void 0 ? void 0 : cachedQuery.state.status;
|
|
246
|
+
this.queryClient.setQueryData(queryKey, function () {
|
|
247
|
+
return queryData;
|
|
248
|
+
}, {
|
|
249
|
+
updatedAt: dataUpdatedAt
|
|
250
|
+
});
|
|
251
|
+
cachedQuery === null || cachedQuery === void 0 || cachedQuery.setState({
|
|
252
|
+
isInvalidated: isInvalidated,
|
|
253
|
+
error: error,
|
|
254
|
+
status: status
|
|
255
|
+
});
|
|
256
|
+
}
|
|
112
257
|
}]);
|
|
113
258
|
}();
|
|
114
259
|
// #sourceMappingURL=ClientDataManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactQuery","require","_core","_interopRequireDefault","e","__esModule","default","ClientDataManager","exports","_config$defaultOption","_config$defaultOption2","config","arguments","length","undefined","_classCallCheck","queryClient","QueryClient","_objectSpread","defaultOptions","queries","networkMode","mutations","_createClass","key","value","invalidateTag","tag","invalidateOptions","invalidateQueries","predicate","_ref","queryKey","hasTag","invalidateTags","tags","_ref2","every","invalidateSource","dataSource","name","resetSource","resetQueries","invalidateParams","params","composeFullKey","exact","resetParams","invalidateSourceTags","slice","filters","_this","invalidate","repeatInvalidate","repeat","i","count","setTimeout","interval"],"sources":["ClientDataManager.ts"],"sourcesContent":["import type {InvalidateQueryFilters, QueryClientConfig} from '@tanstack/react-query';\nimport {QueryClient} from '@tanstack/react-query';\n\nimport {\n type AnyDataSource,\n type DataManager,\n type DataSourceParams,\n type DataSourceTag,\n composeFullKey,\n hasTag,\n} from '../core';\nimport type {InvalidateOptions, InvalidateRepeatOptions} from '../core/types/DataManagerOptions';\n\nexport type ClientDataManagerConfig = QueryClientConfig;\n\nexport class ClientDataManager implements DataManager {\n readonly queryClient: QueryClient;\n\n constructor(config: ClientDataManagerConfig = {}) {\n this.queryClient = new QueryClient({\n ...config,\n defaultOptions: {\n ...config.defaultOptions,\n queries: {\n networkMode: 'always',\n ...config.defaultOptions?.queries,\n },\n mutations: {\n networkMode: 'always',\n ...config.defaultOptions?.mutations,\n },\n },\n });\n }\n\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions) {\n return this.invalidateQueries(\n {\n predicate: ({queryKey}) => hasTag(queryKey, tag),\n },\n invalidateOptions,\n );\n }\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions) {\n return this.invalidateQueries(\n {\n predicate: ({queryKey}) => tags.every((tag) => hasTag(queryKey, tag)),\n },\n invalidateOptions,\n );\n }\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ) {\n return this.invalidateQueries(\n {\n // First element is a data source name\n queryKey: [dataSource.name],\n },\n invalidateOptions,\n );\n }\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource) {\n return this.queryClient.resetQueries({\n // First element is a data source name\n queryKey: [dataSource.name],\n });\n }\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ) {\n return this.invalidateQueries(\n {\n queryKey: composeFullKey(dataSource, params),\n exact: true,\n },\n invalidateOptions,\n );\n }\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ) {\n return this.queryClient.resetQueries({\n queryKey: composeFullKey(dataSource, params),\n exact: true,\n });\n }\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ) {\n return this.invalidateQueries(\n {\n // Last element is a full key\n queryKey: composeFullKey(dataSource, params).slice(0, -1),\n },\n invalidateOptions,\n );\n }\n\n protected invalidateQueries(\n filters: InvalidateQueryFilters,\n invalidateOptions?: InvalidateOptions,\n ) {\n const invalidate = () => this.queryClient.invalidateQueries(filters);\n\n this.repeatInvalidate(invalidate, invalidateOptions?.repeat);\n\n return invalidate();\n }\n\n protected repeatInvalidate(invalidate: () => Promise<void>, repeat?: InvalidateRepeatOptions) {\n if (!repeat) {\n return;\n }\n\n for (let i = 1; i <= repeat.count; i++) {\n setTimeout(invalidate, repeat.interval * i);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_core","require","_reactQuery","_core2","_checkMutationObjectsKeys","_normalize","_parseQueryKey","_interopRequireDefault","e","__esModule","default","ClientDataManager","exports","_config$defaultOption","_config$defaultOption2","_this","config","arguments","length","undefined","_classCallCheck","queryClient","normalizer","queryNormalizer","normalizerConfig","QueryClient","_objectSpread","defaultOptions","queries","networkMode","mutations","createNormalize","createQueryNormalizer","data","optimisticUpdate","invalidateData","_createClass","key","value","mutationData","queryKey","queryData","_this2","optimisticUpdateQuery","queriesToUpdate","getQueriesToUpdate","forEach","query","parsedQueryKey","parseQueryKey","_this3","invalidateQuery","update","_this4","_ref","_typeof","optimistic","invalidate","globalOptimistic","globalInvalidate","completeness","checkMutationObjectsKeys","dependentQueries","getDependentQueries","needsRefetch","queryKeyString","_cachedQuery$meta","cachedQuery","getQueryCache","find","_ref2","meta","_cachedQuery$meta2","_ref3","invalidateTag","tag","invalidateOptions","invalidateQueries","predicate","_ref4","hasTag","invalidateTags","tags","_ref5","every","invalidateSource","dataSource","name","resetSource","resetQueries","invalidateParams","params","composeFullKey","exact","resetParams","invalidateSourceTags","slice","filters","_this5","repeatInvalidate","repeat","i","count","setTimeout","interval","createNormalizer","state","fetchStatus","status","isInvalidated","dataUpdatedAt","error","setQueryData","updatedAt","setState"],"sources":["ClientDataManager.ts"],"sourcesContent":["import type {Data} from '@normy/core';\nimport {createNormalizer} from '@normy/core';\nimport type {InvalidateQueryFilters, QueryClientConfig, QueryKey} from '@tanstack/react-query';\nimport {QueryClient} from '@tanstack/react-query';\n\nimport {\n type AnyDataSource,\n type DataManager,\n type DataSourceParams,\n type DataSourceTag,\n type Normalizer,\n type NormalizerConfig,\n composeFullKey,\n hasTag,\n} from '../core';\nimport type {InvalidateOptions, InvalidateRepeatOptions} from '../core/types/DataManagerOptions';\n\nimport type {QueryNormalizer} from './types/normalizer';\nimport {checkMutationObjectsKeys} from './utils/checkMutationObjectsKeys';\nimport {createQueryNormalizer} from './utils/normalize';\nimport {parseQueryKey} from './utils/parseQueryKey';\n\nexport interface ClientDataManagerConfig extends QueryClientConfig {\n normalizerConfig?: NormalizerConfig | boolean;\n}\n\nexport class ClientDataManager implements DataManager {\n readonly queryClient: QueryClient;\n readonly normalizer?: Normalizer | undefined;\n readonly queryNormalizer?: QueryNormalizer | undefined;\n readonly normalizerConfig?: NormalizerConfig | boolean;\n\n constructor(config: ClientDataManagerConfig = {}) {\n this.normalizerConfig = config.normalizerConfig;\n\n this.queryClient = new QueryClient({\n ...config,\n defaultOptions: {\n ...config.defaultOptions,\n queries: {\n networkMode: 'always',\n ...config.defaultOptions?.queries,\n },\n mutations: {\n networkMode: 'always',\n ...config.defaultOptions?.mutations,\n },\n },\n });\n\n this.normalizer = this.createNormalize(config.normalizerConfig);\n this.queryNormalizer = createQueryNormalizer(\n this.normalizer,\n this.queryClient,\n config.normalizerConfig,\n (data) => this.optimisticUpdate(data),\n (data) => this.invalidateData(data),\n );\n }\n\n optimisticUpdate(mutationData: Data, queryKey?: QueryKey, queryData?: Data) {\n if (!this.normalizer) {\n return;\n }\n\n if (queryKey && queryData) {\n this.optimisticUpdateQuery(queryKey, queryData);\n\n return;\n }\n\n const queriesToUpdate = this.normalizer.getQueriesToUpdate(mutationData);\n\n queriesToUpdate.forEach((query) => {\n const parsedQueryKey = parseQueryKey(query.queryKey);\n\n this.optimisticUpdateQuery(parsedQueryKey, query.data);\n });\n }\n\n invalidateData(data: Data, queryKey?: QueryKey): void {\n if (!this.normalizer) {\n return;\n }\n\n if (queryKey) {\n this.invalidateQuery(queryKey);\n\n return;\n }\n\n const queriesToUpdate = this.normalizer.getQueriesToUpdate(data);\n\n queriesToUpdate.forEach((query) => {\n const parsedQueryKey = parseQueryKey(query.queryKey);\n\n this.invalidateQuery(parsedQueryKey);\n });\n }\n\n update(data: Data) {\n if (!this.normalizer) {\n return;\n }\n\n const {optimistic: globalOptimistic, invalidate: globalInvalidate} =\n typeof this.normalizerConfig === 'object'\n ? this.normalizerConfig\n : {optimistic: false, invalidate: false};\n\n const queriesToUpdate = this.normalizer.getQueriesToUpdate(data);\n\n if (queriesToUpdate.length === 0) {\n const completeness = checkMutationObjectsKeys(data, this.normalizer);\n const dependentQueries = this.normalizer.getDependentQueries(data);\n\n if (completeness.needsRefetch) {\n dependentQueries.forEach((queryKeyString) => {\n const parsedQueryKey = parseQueryKey(queryKeyString);\n\n const cachedQuery = this.queryClient\n .getQueryCache()\n .find({queryKey: parsedQueryKey});\n\n const {invalidate} = cachedQuery?.meta ?? {};\n\n if (\n invalidate === true ||\n (invalidate === undefined && globalInvalidate === true)\n ) {\n this.invalidateData(data, parsedQueryKey);\n }\n });\n }\n\n return;\n }\n\n queriesToUpdate.forEach((query) => {\n const parsedQueryKey = parseQueryKey(query.queryKey);\n\n const cachedQuery = this.queryClient.getQueryCache().find({queryKey: parsedQueryKey});\n\n const {optimistic, invalidate} = cachedQuery?.meta ?? {};\n\n if (optimistic === true || (optimistic === undefined && globalOptimistic === true)) {\n this.optimisticUpdate(data, parsedQueryKey, query.data);\n }\n\n if (invalidate === true || (invalidate === undefined && globalInvalidate === true)) {\n this.invalidateData(data, parsedQueryKey);\n }\n });\n }\n\n invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions) {\n return this.invalidateQueries(\n {\n predicate: ({queryKey}) => hasTag(queryKey, tag),\n },\n invalidateOptions,\n );\n }\n\n invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions) {\n return this.invalidateQueries(\n {\n predicate: ({queryKey}) => tags.every((tag) => hasTag(queryKey, tag)),\n },\n invalidateOptions,\n );\n }\n\n invalidateSource<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n invalidateOptions?: InvalidateOptions,\n ) {\n return this.invalidateQueries(\n {\n // First element is a data source name\n queryKey: [dataSource.name],\n },\n invalidateOptions,\n );\n }\n\n resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource) {\n return this.queryClient.resetQueries({\n // First element is a data source name\n queryKey: [dataSource.name],\n });\n }\n\n invalidateParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ) {\n return this.invalidateQueries(\n {\n queryKey: composeFullKey(dataSource, params),\n exact: true,\n },\n invalidateOptions,\n );\n }\n\n resetParams<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n ) {\n return this.queryClient.resetQueries({\n queryKey: composeFullKey(dataSource, params),\n exact: true,\n });\n }\n\n invalidateSourceTags<TDataSource extends AnyDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n invalidateOptions?: InvalidateOptions,\n ) {\n return this.invalidateQueries(\n {\n // Last element is a full key\n queryKey: composeFullKey(dataSource, params).slice(0, -1),\n },\n invalidateOptions,\n );\n }\n\n protected invalidateQueries(\n filters: InvalidateQueryFilters,\n invalidateOptions?: InvalidateOptions,\n ) {\n const invalidate = () => this.queryClient.invalidateQueries(filters);\n\n this.repeatInvalidate(invalidate, invalidateOptions?.repeat);\n\n return invalidate();\n }\n\n protected repeatInvalidate(invalidate: () => Promise<void>, repeat?: InvalidateRepeatOptions) {\n if (!repeat) {\n return;\n }\n\n for (let i = 1; i <= repeat.count; i++) {\n setTimeout(invalidate, repeat.interval * i);\n }\n }\n\n private createNormalize(\n config: boolean | NormalizerConfig | undefined,\n ): Normalizer | undefined {\n if (!config) {\n return undefined;\n }\n\n if (config === true) {\n return createNormalizer({});\n }\n\n return createNormalizer(config);\n }\n\n private invalidateQuery(queryKey: QueryKey) {\n const cachedQuery = this.queryClient.getQueryCache().find({queryKey});\n\n if (\n cachedQuery?.state.fetchStatus !== 'fetching' &&\n cachedQuery?.state.status === 'success' &&\n !cachedQuery?.state.isInvalidated\n ) {\n this.queryClient.invalidateQueries({queryKey});\n }\n }\n\n private optimisticUpdateQuery(queryKey: QueryKey, queryData: Data) {\n const cachedQuery = this.queryClient.getQueryCache().find({queryKey});\n\n const dataUpdatedAt = cachedQuery?.state.dataUpdatedAt;\n const isInvalidated = cachedQuery?.state.isInvalidated;\n const error = cachedQuery?.state.error;\n const status = cachedQuery?.state.status;\n\n this.queryClient.setQueryData(queryKey, () => queryData, {\n updatedAt: dataUpdatedAt,\n });\n\n cachedQuery?.setState({isInvalidated, error, status});\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ClientDataManager } from './ClientDataManager';
|
|
3
|
+
export interface DataSourceProviderProps {
|
|
4
|
+
dataManager: ClientDataManager;
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const DataSourceProvider: React.FC<DataSourceProviderProps>;
|