@gravity-ui/data-source 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/build/cjs/core/index.d.ts +1 -0
  2. package/build/cjs/core/index.js.map +1 -1
  3. package/build/cjs/core/types/DataManagerOptions.d.ts +10 -0
  4. package/build/cjs/core/types/DataManagerOptions.js +6 -0
  5. package/build/cjs/core/types/DataManagerOptions.js.map +1 -0
  6. package/build/cjs/core/types/DataManger.d.ts +6 -5
  7. package/build/cjs/core/types/DataManger.js.map +1 -1
  8. package/build/cjs/react-query/ClientDataManager.d.ts +8 -5
  9. package/build/cjs/react-query/ClientDataManager.js +39 -15
  10. package/build/cjs/react-query/ClientDataManager.js.map +1 -1
  11. package/build/cjs/react-query/hooks/useQueryData.js.map +1 -1
  12. package/build/cjs/react-query/hooks/useRefetchInterval.d.ts +7 -0
  13. package/build/cjs/react-query/hooks/useRefetchInterval.js +33 -0
  14. package/build/cjs/react-query/hooks/useRefetchInterval.js.map +1 -0
  15. package/build/cjs/react-query/impl/infinite/hooks.d.ts +4 -2
  16. package/build/cjs/react-query/impl/infinite/hooks.js +19 -1
  17. package/build/cjs/react-query/impl/infinite/hooks.js.map +1 -1
  18. package/build/cjs/react-query/impl/infinite/types.d.ts +5 -2
  19. package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
  20. package/build/cjs/react-query/impl/infinite/utils.d.ts +3 -3
  21. package/build/cjs/react-query/impl/infinite/utils.js.map +1 -1
  22. package/build/cjs/react-query/impl/plain/hooks.d.ts +5 -2
  23. package/build/cjs/react-query/impl/plain/hooks.js +19 -1
  24. package/build/cjs/react-query/impl/plain/hooks.js.map +1 -1
  25. package/build/cjs/react-query/impl/plain/types.d.ts +4 -3
  26. package/build/cjs/react-query/impl/plain/types.js.map +1 -1
  27. package/build/cjs/react-query/impl/plain/utils.d.ts +2 -3
  28. package/build/cjs/react-query/impl/plain/utils.js.map +1 -1
  29. package/build/cjs/react-query/index.d.ts +2 -1
  30. package/build/cjs/react-query/index.js +7 -0
  31. package/build/cjs/react-query/index.js.map +1 -1
  32. package/build/cjs/react-query/{types.d.ts → types/base.d.ts} +2 -2
  33. package/build/cjs/react-query/{types.js → types/base.js} +1 -1
  34. package/build/cjs/react-query/types/base.js.map +1 -0
  35. package/build/cjs/react-query/types/index.d.ts +2 -0
  36. package/build/cjs/react-query/types/index.js +28 -0
  37. package/build/cjs/react-query/types/index.js.map +1 -0
  38. package/build/cjs/react-query/types/refetch-interval.d.ts +10 -0
  39. package/build/cjs/react-query/types/refetch-interval.js +6 -0
  40. package/build/cjs/react-query/types/refetch-interval.js.map +1 -0
  41. package/build/cjs/react-query/utils/getProgressiveRefetch.d.ts +3 -0
  42. package/build/cjs/react-query/utils/getProgressiveRefetch.js +15 -0
  43. package/build/cjs/react-query/utils/getProgressiveRefetch.js.map +1 -0
  44. package/build/esm/core/index.d.ts +1 -0
  45. package/build/esm/core/index.js.map +1 -1
  46. package/build/esm/core/types/DataManagerOptions.d.ts +10 -0
  47. package/build/esm/core/types/DataManagerOptions.js +2 -0
  48. package/build/esm/core/types/DataManagerOptions.js.map +1 -0
  49. package/build/esm/core/types/DataManger.d.ts +6 -5
  50. package/build/esm/core/types/DataManger.js.map +1 -1
  51. package/build/esm/react-query/ClientDataManager.d.ts +8 -5
  52. package/build/esm/react-query/ClientDataManager.js +39 -15
  53. package/build/esm/react-query/ClientDataManager.js.map +1 -1
  54. package/build/esm/react-query/hooks/useQueryData.js.map +1 -1
  55. package/build/esm/react-query/hooks/useRefetchInterval.d.ts +7 -0
  56. package/build/esm/react-query/hooks/useRefetchInterval.js +26 -0
  57. package/build/esm/react-query/hooks/useRefetchInterval.js.map +1 -0
  58. package/build/esm/react-query/impl/infinite/hooks.d.ts +4 -2
  59. package/build/esm/react-query/impl/infinite/hooks.js +18 -1
  60. package/build/esm/react-query/impl/infinite/hooks.js.map +1 -1
  61. package/build/esm/react-query/impl/infinite/types.d.ts +5 -2
  62. package/build/esm/react-query/impl/infinite/types.js.map +1 -1
  63. package/build/esm/react-query/impl/infinite/utils.d.ts +3 -3
  64. package/build/esm/react-query/impl/infinite/utils.js.map +1 -1
  65. package/build/esm/react-query/impl/plain/hooks.d.ts +5 -2
  66. package/build/esm/react-query/impl/plain/hooks.js +18 -1
  67. package/build/esm/react-query/impl/plain/hooks.js.map +1 -1
  68. package/build/esm/react-query/impl/plain/types.d.ts +4 -3
  69. package/build/esm/react-query/impl/plain/types.js.map +1 -1
  70. package/build/esm/react-query/impl/plain/utils.d.ts +2 -3
  71. package/build/esm/react-query/impl/plain/utils.js.map +1 -1
  72. package/build/esm/react-query/index.d.ts +2 -1
  73. package/build/esm/react-query/index.js +1 -0
  74. package/build/esm/react-query/index.js.map +1 -1
  75. package/build/esm/react-query/{types.d.ts → types/base.d.ts} +2 -2
  76. package/build/esm/react-query/types/base.js +2 -0
  77. package/build/esm/react-query/types/base.js.map +1 -0
  78. package/build/esm/react-query/types/index.d.ts +2 -0
  79. package/build/esm/react-query/types/index.js +3 -0
  80. package/build/esm/react-query/types/index.js.map +1 -0
  81. package/build/esm/react-query/types/refetch-interval.d.ts +10 -0
  82. package/build/esm/react-query/types/refetch-interval.js +2 -0
  83. package/build/esm/react-query/types/refetch-interval.js.map +1 -0
  84. package/build/esm/react-query/utils/getProgressiveRefetch.d.ts +3 -0
  85. package/build/esm/react-query/utils/getProgressiveRefetch.js +9 -0
  86. package/build/esm/react-query/utils/getProgressiveRefetch.js.map +1 -0
  87. package/package.json +1 -1
  88. package/build/cjs/react-query/types.js.map +0 -1
  89. package/build/esm/react-query/types.js +0 -2
  90. package/build/esm/react-query/types.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  export type { DataSourceKey, DataSourceTag, DataSource, AnyDataSource, DataSourceContext, DataSourceParams, DataSourceRequest, DataSourceResponse, DataSourceData, DataSourceError, DataSourceOptions, DataSourceState, DataSourceFetchContext, ActualParams, ActualData, } from './types/DataSource';
2
2
  export type { DataManager } from './types/DataManger';
3
3
  export type { DataLoaderStatus } from './types/DataLoaderStatus';
4
+ export type { InvalidateRepeatOptions, InvalidateOptions } from './types/DataManagerOptions';
4
5
  export { idle } from './constants';
5
6
  export { composeKey } from './utils/composeKey';
6
7
  export { composeFullKey } from './utils/composeFullKey';
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_composeKey","_composeFullKey","_getError","_getStatus","_hasTag","_mergeStatuses","_skipContext","_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/DataManger';\nexport type {DataLoaderStatus} from './types/DataLoaderStatus';\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 type {Cancellable} from './utils/withCancellation';\nexport {isCancellable, isAbortable, withCancellation} from './utils/withCancellation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,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;AAEA,IAAAQ,iBAAA,GAAAR,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","_composeKey","_composeFullKey","_getError","_getStatus","_hasTag","_mergeStatuses","_skipContext","_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/DataManger';\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 type {Cancellable} from './utils/withCancellation';\nexport {isCancellable, isAbortable, withCancellation} from './utils/withCancellation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,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;AAEA,IAAAQ,iBAAA,GAAAR,OAAA","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ export interface InvalidateRepeatOptions {
2
+ interval: number;
3
+ /**
4
+ * Number of repeated calls, not counting the first one
5
+ */
6
+ count: number;
7
+ }
8
+ export interface InvalidateOptions {
9
+ repeat?: InvalidateRepeatOptions;
10
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ // #sourceMappingURL=DataManagerOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["DataManagerOptions.ts"],"sourcesContent":["export interface InvalidateRepeatOptions {\n interval: number;\n /**\n * Number of repeated calls, not counting the first one\n */\n count: number;\n}\n\nexport interface InvalidateOptions {\n repeat?: InvalidateRepeatOptions;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,10 +1,11 @@
1
+ import type { InvalidateOptions } from './DataManagerOptions';
1
2
  import type { AnyDataSource, DataSourceParams, DataSourceTag } from './DataSource';
2
3
  export interface DataManager {
3
- invalidateTag(tag: DataSourceTag): Promise<void>;
4
- invalidateTags(tags: DataSourceTag[]): Promise<void>;
5
- invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;
4
+ invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;
5
+ invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;
6
+ invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>;
6
7
  resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;
7
- invalidateParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>;
8
+ invalidateParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>;
8
9
  resetParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>;
9
- invalidateSourceTags<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>;
10
+ invalidateSourceTags<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["DataManger.ts"],"sourcesContent":["import type {AnyDataSource, DataSourceParams, DataSourceTag} from './DataSource';\n\nexport interface DataManager {\n invalidateTag(tag: DataSourceTag): Promise<void>;\n invalidateTags(tags: DataSourceTag[]): Promise<void>;\n\n invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): 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 ): 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 ): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["DataManger.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 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,15 +1,18 @@
1
1
  import type { QueryClientConfig } from '@tanstack/react-query';
2
2
  import { QueryClient } from '@tanstack/react-query';
3
3
  import { type AnyDataSource, type DataManager, type DataSourceParams, type DataSourceTag } from '../core';
4
+ import type { InvalidateOptions } from '../core/types/DataManagerOptions';
4
5
  export type ClientDataManagerConfig = QueryClientConfig;
5
6
  export declare class ClientDataManager implements DataManager {
6
7
  readonly queryClient: QueryClient;
7
8
  constructor(conifg?: ClientDataManagerConfig);
8
- invalidateTag(tag: DataSourceTag): Promise<void>;
9
- invalidateTags(tags: DataSourceTag[]): Promise<void>;
10
- invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;
9
+ invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;
10
+ invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;
11
+ invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>;
11
12
  resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;
12
- invalidateParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>;
13
+ invalidateParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>;
13
14
  resetParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>;
14
- invalidateSourceTags<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>;
15
+ invalidateSourceTags<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>;
16
+ private invalidateQueries;
17
+ private repeatInvalidate;
15
18
  }
@@ -29,33 +29,33 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
29
29
  }
30
30
  return (0, _createClass2.default)(ClientDataManager, [{
31
31
  key: "invalidateTag",
32
- value: function invalidateTag(tag) {
33
- return this.queryClient.invalidateQueries({
32
+ value: function invalidateTag(tag, invalidateOptions) {
33
+ return this.invalidateQueries({
34
34
  predicate: function predicate(_ref) {
35
35
  var queryKey = _ref.queryKey;
36
36
  return (0, _core.hasTag)(queryKey, tag);
37
37
  }
38
- });
38
+ }, invalidateOptions);
39
39
  }
40
40
  }, {
41
41
  key: "invalidateTags",
42
- value: function invalidateTags(tags) {
43
- return this.queryClient.invalidateQueries({
42
+ value: function invalidateTags(tags, invalidateOptions) {
43
+ return this.invalidateQueries({
44
44
  predicate: function predicate(_ref2) {
45
45
  var queryKey = _ref2.queryKey;
46
46
  return tags.every(function (tag) {
47
47
  return (0, _core.hasTag)(queryKey, tag);
48
48
  });
49
49
  }
50
- });
50
+ }, invalidateOptions);
51
51
  }
52
52
  }, {
53
53
  key: "invalidateSource",
54
- value: function invalidateSource(dataSource) {
55
- return this.queryClient.invalidateQueries({
54
+ value: function invalidateSource(dataSource, invalidateOptions) {
55
+ return this.invalidateQueries({
56
56
  // First element is a data source name
57
57
  queryKey: [dataSource.name]
58
- });
58
+ }, invalidateOptions);
59
59
  }
60
60
  }, {
61
61
  key: "resetSource",
@@ -67,11 +67,11 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
67
67
  }
68
68
  }, {
69
69
  key: "invalidateParams",
70
- value: function invalidateParams(dataSource, params) {
71
- return this.queryClient.invalidateQueries({
70
+ value: function invalidateParams(dataSource, params, invalidateOptions) {
71
+ return this.invalidateQueries({
72
72
  queryKey: (0, _core.composeFullKey)(dataSource, params),
73
73
  exact: true
74
- });
74
+ }, invalidateOptions);
75
75
  }
76
76
  }, {
77
77
  key: "resetParams",
@@ -83,11 +83,35 @@ var ClientDataManager = exports.ClientDataManager = /*#__PURE__*/function () {
83
83
  }
84
84
  }, {
85
85
  key: "invalidateSourceTags",
86
- value: function invalidateSourceTags(dataSource, params) {
87
- return this.queryClient.invalidateQueries({
86
+ value: function invalidateSourceTags(dataSource, params, invalidateOptions) {
87
+ return this.invalidateQueries({
88
88
  // Last element is a full key
89
89
  queryKey: (0, _core.composeFullKey)(dataSource, params).slice(0, -1)
90
- });
90
+ }, invalidateOptions);
91
+ }
92
+ }, {
93
+ key: "invalidateQueries",
94
+ value: function invalidateQueries(filters, invalidateOptions) {
95
+ var _this = this;
96
+ var _ref3 = invalidateOptions || {},
97
+ repeat = _ref3.repeat;
98
+ var invalidate = function invalidate() {
99
+ return _this.queryClient.invalidateQueries(filters);
100
+ };
101
+ this.repeatInvalidate(invalidate, repeat);
102
+ return invalidate();
103
+ }
104
+ }, {
105
+ key: "repeatInvalidate",
106
+ value: function repeatInvalidate(invalidate, repeat) {
107
+ if (!repeat) {
108
+ return;
109
+ }
110
+ var interval = repeat.interval,
111
+ count = repeat.count;
112
+ for (var i = 1; i <= count; i++) {
113
+ setTimeout(invalidate, interval * i);
114
+ }
91
115
  }
92
116
  }]);
93
117
  }();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactQuery","require","_core","_interopRequireDefault","e","__esModule","default","ClientDataManager","exports","_conifg$defaultOption","_conifg$defaultOption2","conifg","arguments","length","undefined","_classCallCheck","queryClient","QueryClient","_objectSpread","defaultOptions","queries","networkMode","mutations","_createClass","key","value","invalidateTag","tag","invalidateQueries","predicate","_ref","queryKey","hasTag","invalidateTags","tags","_ref2","every","invalidateSource","dataSource","name","resetSource","resetQueries","invalidateParams","params","composeFullKey","exact","resetParams","invalidateSourceTags","slice"],"sources":["ClientDataManager.ts"],"sourcesContent":["import type {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';\n\nexport type ClientDataManagerConfig = QueryClientConfig;\n\nexport class ClientDataManager implements DataManager {\n readonly queryClient: QueryClient;\n\n constructor(conifg: ClientDataManagerConfig = {}) {\n this.queryClient = new QueryClient({\n ...conifg,\n defaultOptions: {\n ...conifg.defaultOptions,\n queries: {\n networkMode: 'always',\n ...conifg.defaultOptions?.queries,\n },\n mutations: {\n networkMode: 'always',\n ...conifg.defaultOptions?.mutations,\n },\n },\n });\n }\n\n invalidateTag(tag: DataSourceTag) {\n return this.queryClient.invalidateQueries({\n predicate: ({queryKey}) => hasTag(queryKey, tag),\n });\n }\n\n invalidateTags(tags: DataSourceTag[]) {\n return this.queryClient.invalidateQueries({\n predicate: ({queryKey}) => tags.every((tag) => hasTag(queryKey, tag)),\n });\n }\n\n invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource) {\n return this.queryClient.invalidateQueries({\n // First element is a data source name\n queryKey: [dataSource.name],\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 ) {\n return this.queryClient.invalidateQueries({\n queryKey: composeFullKey(dataSource, params),\n exact: true,\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 ) {\n return this.queryClient.invalidateQueries({\n // Last element is a full key\n queryKey: composeFullKey(dataSource, params).slice(0, -1),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactQuery","require","_core","_interopRequireDefault","e","__esModule","default","ClientDataManager","exports","_conifg$defaultOption","_conifg$defaultOption2","conifg","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","_ref3","repeat","invalidate","repeatInvalidate","interval","count","i","setTimeout"],"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(conifg: ClientDataManagerConfig = {}) {\n this.queryClient = new QueryClient({\n ...conifg,\n defaultOptions: {\n ...conifg.defaultOptions,\n queries: {\n networkMode: 'always',\n ...conifg.defaultOptions?.queries,\n },\n mutations: {\n networkMode: 'always',\n ...conifg.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 private invalidateQueries(\n filters: InvalidateQueryFilters,\n invalidateOptions?: InvalidateOptions,\n ) {\n const {repeat} = invalidateOptions || {};\n\n const invalidate = () => this.queryClient.invalidateQueries(filters);\n\n this.repeatInvalidate(invalidate, repeat);\n\n return invalidate();\n }\n\n private repeatInvalidate(invalidate: () => Promise<void>, repeat?: InvalidateRepeatOptions) {\n if (!repeat) {\n return;\n }\n const {interval, count} = repeat;\n\n for (let i = 1; i <= count; i++) {\n setTimeout(invalidate, interval * i);\n }\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAOgB,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAKhB,IAAaG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA;EAG1B,SAAAA,kBAAA,EAAkD;IAAA,IAAAE,qBAAA,EAAAC,sBAAA;IAAA,IAAtCC,MAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAAAG,wBAAA,QAAAR,iBAAA;IAAA,KAFvCS,WAAW;IAGhB,IAAI,CAACA,WAAW,GAAG,IAAIC,uBAAW,KAAAC,sBAAA,MAAAA,sBAAA,MAC3BP,MAAM;MACTQ,cAAc,MAAAD,sBAAA,MAAAA,sBAAA,MACPP,MAAM,CAACQ,cAAc;QACxBC,OAAO,MAAAF,sBAAA;UACHG,WAAW,EAAE;QAAQ,IAAAZ,qBAAA,GAClBE,MAAM,CAACQ,cAAc,cAAAV,qBAAA,uBAArBA,qBAAA,CAAuBW,OAAO,CACpC;QACDE,SAAS,MAAAJ,sBAAA;UACLG,WAAW,EAAE;QAAQ,IAAAX,sBAAA,GAClBC,MAAM,CAACQ,cAAc,cAAAT,sBAAA,uBAArBA,sBAAA,CAAuBY,SAAS;MACtC;IACJ,EACJ,CAAC;EACN;EAAC,WAAAC,qBAAA,EAAAhB,iBAAA;IAAAiB,GAAA;IAAAC,KAAA,EAED,SAAAC,aAAaA,CAACC,GAAkB,EAAEC,iBAAqC,EAAE;MACrE,OAAO,IAAI,CAACC,iBAAiB,CACzB;QACIC,SAAS,EAAE,SAAXA,SAASA,CAAAC,IAAA;UAAA,IAAIC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;UAAA,OAAM,IAAAC,YAAM,EAACD,QAAQ,EAAEL,GAAG,CAAC;QAAA;MACpD,CAAC,EACDC,iBACJ,CAAC;IACL;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAS,cAAcA,CAACC,IAAqB,EAAEP,iBAAqC,EAAE;MACzE,OAAO,IAAI,CAACC,iBAAiB,CACzB;QACIC,SAAS,EAAE,SAAXA,SAASA,CAAAM,KAAA;UAAA,IAAIJ,QAAQ,GAAAI,KAAA,CAARJ,QAAQ;UAAA,OAAMG,IAAI,CAACE,KAAK,CAAC,UAACV,GAAG;YAAA,OAAK,IAAAM,YAAM,EAACD,QAAQ,EAAEL,GAAG,CAAC;UAAA,EAAC;QAAA;MACzE,CAAC,EACDC,iBACJ,CAAC;IACL;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAa,gBAAgBA,CACZC,UAAuB,EACvBX,iBAAqC,EACvC;MACE,OAAO,IAAI,CAACC,iBAAiB,CACzB;QACI;QACAG,QAAQ,EAAE,CAACO,UAAU,CAACC,IAAI;MAC9B,CAAC,EACDZ,iBACJ,CAAC;IACL;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAgB,WAAWA,CAAoCF,UAAuB,EAAE;MACpE,OAAO,IAAI,CAACvB,WAAW,CAAC0B,YAAY,CAAC;QACjC;QACAV,QAAQ,EAAE,CAACO,UAAU,CAACC,IAAI;MAC9B,CAAC,CAAC;IACN;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAAkB,gBAAgBA,CACZJ,UAAuB,EACvBK,MAAqC,EACrChB,iBAAqC,EACvC;MACE,OAAO,IAAI,CAACC,iBAAiB,CACzB;QACIG,QAAQ,EAAE,IAAAa,oBAAc,EAACN,UAAU,EAAEK,MAAM,CAAC;QAC5CE,KAAK,EAAE;MACX,CAAC,EACDlB,iBACJ,CAAC;IACL;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAsB,WAAWA,CACPR,UAAuB,EACvBK,MAAqC,EACvC;MACE,OAAO,IAAI,CAAC5B,WAAW,CAAC0B,YAAY,CAAC;QACjCV,QAAQ,EAAE,IAAAa,oBAAc,EAACN,UAAU,EAAEK,MAAM,CAAC;QAC5CE,KAAK,EAAE;MACX,CAAC,CAAC;IACN;EAAC;IAAAtB,GAAA;IAAAC,KAAA,EAED,SAAAuB,oBAAoBA,CAChBT,UAAuB,EACvBK,MAAqC,EACrChB,iBAAqC,EACvC;MACE,OAAO,IAAI,CAACC,iBAAiB,CACzB;QACI;QACAG,QAAQ,EAAE,IAAAa,oBAAc,EAACN,UAAU,EAAEK,MAAM,CAAC,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;MAC5D,CAAC,EACDrB,iBACJ,CAAC;IACL;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAQI,iBAAiBA,CACrBqB,OAA+B,EAC/BtB,iBAAqC,EACvC;MAAA,IAAAuB,KAAA;MACE,IAAAC,KAAA,GAAiBxB,iBAAiB,IAAI,CAAC,CAAC;QAAjCyB,MAAM,GAAAD,KAAA,CAANC,MAAM;MAEb,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA;QAAA,OAASH,KAAI,CAACnC,WAAW,CAACa,iBAAiB,CAACqB,OAAO,CAAC;MAAA;MAEpE,IAAI,CAACK,gBAAgB,CAACD,UAAU,EAAED,MAAM,CAAC;MAEzC,OAAOC,UAAU,CAAC,CAAC;IACvB;EAAC;IAAA9B,GAAA;IAAAC,KAAA,EAED,SAAQ8B,gBAAgBA,CAACD,UAA+B,EAAED,MAAgC,EAAE;MACxF,IAAI,CAACA,MAAM,EAAE;QACT;MACJ;MACA,IAAOG,QAAQ,GAAWH,MAAM,CAAzBG,QAAQ;QAAEC,KAAK,GAAIJ,MAAM,CAAfI,KAAK;MAEtB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAID,KAAK,EAAEC,CAAC,EAAE,EAAE;QAC7BC,UAAU,CAACL,UAAU,EAAEE,QAAQ,GAAGE,CAAC,CAAC;MACxC;IACJ;EAAC;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_hooks","require","_hooks2","_notReachable","_useQueryContext","useQueryData","exports","dataSource","params","options","context","useQueryContext","type","state","usePlainQueryData","useInfiniteQueryData","notReachable","concat"],"sources":["useQueryData.ts"],"sourcesContent":["import type {DataSourceOptions, DataSourceParams, DataSourceState} from '../../core';\nimport {useInfiniteQueryData} from '../impl/infinite/hooks';\nimport type {AnyInfiniteQueryDataSource} from '../impl/infinite/types';\nimport {usePlainQueryData} from '../impl/plain/hooks';\nimport type {AnyQueryDataSource} from '../types';\nimport {notReachable} from '../utils/notReachable';\n\nimport {useQueryContext} from './useQueryContext';\n\nexport const useQueryData = <TDataSource extends AnyQueryDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const context = useQueryContext();\n\n const type = dataSource.type;\n let state: DataSourceState<AnyQueryDataSource> | undefined;\n\n // Do not change data source type in the same hook call\n if (type === 'plain') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n state = usePlainQueryData(context, dataSource, params, options);\n } else if (type === 'infinite') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n state = useInfiniteQueryData(\n context,\n dataSource,\n params,\n // TS can't calculate types in this place\n options as Partial<DataSourceOptions<AnyInfiniteQueryDataSource>> | undefined,\n );\n } else {\n return notReachable(type, `Data Source type must be plain or infinite, got: ${type}`);\n }\n\n return state as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AAEO,IAAMI,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAfA,YAAYA,CACrBE,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,OAAO,GAAG,IAAAC,gCAAe,EAAC,CAAC;EAEjC,IAAMC,IAAI,GAAGL,UAAU,CAACK,IAAI;EAC5B,IAAIC,KAAsD;;EAE1D;EACA,IAAID,IAAI,KAAK,OAAO,EAAE;IAClB;IACAC,KAAK,GAAG,IAAAC,yBAAiB,EAACJ,OAAO,EAAEH,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACnE,CAAC,MAAM,IAAIG,IAAI,KAAK,UAAU,EAAE;IAC5B;IACAC,KAAK,GAAG,IAAAE,2BAAoB,EACxBL,OAAO,EACPH,UAAU,EACVC,MAAM;IACN;IACAC,OACJ,CAAC;EACL,CAAC,MAAM;IACH,OAAO,IAAAO,0BAAY,EAACJ,IAAI,sDAAAK,MAAA,CAAsDL,IAAI,CAAE,CAAC;EACzF;EAEA,OAAOC,KAAK;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_hooks","require","_hooks2","_notReachable","_useQueryContext","useQueryData","exports","dataSource","params","options","context","useQueryContext","type","state","usePlainQueryData","useInfiniteQueryData","notReachable","concat"],"sources":["useQueryData.ts"],"sourcesContent":["import type {DataSourceOptions, DataSourceParams, DataSourceState} from '../../core';\nimport {useInfiniteQueryData} from '../impl/infinite/hooks';\nimport type {AnyInfiniteQueryDataSource} from '../impl/infinite/types';\nimport {usePlainQueryData} from '../impl/plain/hooks';\nimport type {AnyPlainQueryDataSource} from '../impl/plain/types';\nimport type {AnyQueryDataSource} from '../types';\nimport {notReachable} from '../utils/notReachable';\n\nimport {useQueryContext} from './useQueryContext';\n\nexport const useQueryData = <TDataSource extends AnyQueryDataSource>(\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const context = useQueryContext();\n\n const type = dataSource.type;\n let state: DataSourceState<AnyQueryDataSource> | undefined;\n\n // Do not change data source type in the same hook call\n if (type === 'plain') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n state = usePlainQueryData(\n context,\n dataSource,\n params,\n options as Partial<DataSourceOptions<AnyPlainQueryDataSource>> | undefined,\n );\n } else if (type === 'infinite') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n state = useInfiniteQueryData(\n context,\n dataSource,\n params,\n // TS can't calculate types in this place\n options as Partial<DataSourceOptions<AnyInfiniteQueryDataSource>> | undefined,\n );\n } else {\n return notReachable(type, `Data Source type must be plain or infinite, got: ${type}`);\n }\n\n return state as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AAEO,IAAMI,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,SAAfA,YAAYA,CACrBE,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,OAAO,GAAG,IAAAC,gCAAe,EAAC,CAAC;EAEjC,IAAMC,IAAI,GAAGL,UAAU,CAACK,IAAI;EAC5B,IAAIC,KAAsD;;EAE1D;EACA,IAAID,IAAI,KAAK,OAAO,EAAE;IAClB;IACAC,KAAK,GAAG,IAAAC,yBAAiB,EACrBJ,OAAO,EACPH,UAAU,EACVC,MAAM,EACNC,OACJ,CAAC;EACL,CAAC,MAAM,IAAIG,IAAI,KAAK,UAAU,EAAE;IAC5B;IACAC,KAAK,GAAG,IAAAE,2BAAoB,EACxBL,OAAO,EACPH,UAAU,EACVC,MAAM;IACN;IACAC,OACJ,CAAC;EACL,CAAC,MAAM;IACH,OAAO,IAAAO,0BAAY,EAACJ,IAAI,sDAAAK,MAAA,CAAsDL,IAAI,CAAE,CAAC;EACzF;EAEA,OAAOC,KAAK;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import type { Query, QueryFunction, SkipToken } from '@tanstack/react-query';
2
+ import type { DataSourceError, DataSourceKey, DataSourceResponse } from '../../core';
3
+ import type { AnyQueryDataSource, RefetchInterval } from '../types';
4
+ export declare const useRefetchInterval: <TDataSource extends AnyQueryDataSource, TQueryData, TPageParams>(refetchIntervalOption?: RefetchInterval<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, TQueryData, DataSourceKey>, queryFnOption?: QueryFunction<DataSourceResponse<TDataSource>, DataSourceKey, TPageParams> | SkipToken) => {
5
+ refetchInterval?: number | false | ((query: Query<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, TQueryData, DataSourceKey>) => number | false | undefined);
6
+ queryFn?: QueryFunction<DataSourceResponse<TDataSource>, DataSourceKey, TPageParams> | SkipToken;
7
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRefetchInterval = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ var useRefetchInterval = exports.useRefetchInterval = function useRefetchInterval(refetchIntervalOption, queryFnOption) {
10
+ var count = _react.default.useRef(0);
11
+ var queryFn = _react.default.useMemo(function () {
12
+ if (typeof queryFnOption === 'function') {
13
+ return function (context) {
14
+ count.current++;
15
+ return queryFnOption(context);
16
+ };
17
+ }
18
+ return undefined;
19
+ }, [queryFnOption]);
20
+ var refetchInterval = _react.default.useMemo(function () {
21
+ if (typeof refetchIntervalOption === 'function') {
22
+ return function (query) {
23
+ return refetchIntervalOption(query, count.current);
24
+ };
25
+ }
26
+ return refetchIntervalOption;
27
+ }, [refetchIntervalOption]);
28
+ return {
29
+ refetchInterval: refetchInterval,
30
+ queryFn: queryFn
31
+ };
32
+ };
33
+ // #sourceMappingURL=useRefetchInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","e","__esModule","default","useRefetchInterval","exports","refetchIntervalOption","queryFnOption","count","React","useRef","queryFn","useMemo","context","current","undefined","refetchInterval","query"],"sources":["useRefetchInterval.ts"],"sourcesContent":["import React from 'react';\n\nimport type {Query, QueryFunction, QueryFunctionContext, SkipToken} from '@tanstack/react-query';\n\nimport type {DataSourceError, DataSourceKey, DataSourceResponse} from '../../core';\nimport type {AnyQueryDataSource, RefetchInterval} from '../types';\n\nexport const useRefetchInterval = <TDataSource extends AnyQueryDataSource, TQueryData, TPageParams>(\n refetchIntervalOption?: RefetchInterval<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n TQueryData,\n DataSourceKey\n >,\n queryFnOption?:\n | QueryFunction<DataSourceResponse<TDataSource>, DataSourceKey, TPageParams>\n | SkipToken,\n): {\n refetchInterval?:\n | number\n | false\n | ((\n query: Query<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n TQueryData,\n DataSourceKey\n >,\n ) => number | false | undefined);\n queryFn?:\n | QueryFunction<DataSourceResponse<TDataSource>, DataSourceKey, TPageParams>\n | SkipToken;\n} => {\n const count = React.useRef<number>(0);\n\n const queryFn = React.useMemo(() => {\n if (typeof queryFnOption === 'function') {\n return (context: QueryFunctionContext<DataSourceKey, TPageParams>) => {\n count.current++;\n return queryFnOption(context);\n };\n }\n return undefined;\n }, [queryFnOption]);\n\n const refetchInterval = React.useMemo(() => {\n if (typeof refetchIntervalOption === 'function') {\n return (\n query: Query<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n TQueryData,\n DataSourceKey\n >,\n ) => {\n return refetchIntervalOption(query, count.current);\n };\n }\n return refetchIntervalOption;\n }, [refetchIntervalOption]);\n\n return {refetchInterval, queryFn};\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyB,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOlB,IAAMG,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,SAArBA,kBAAkBA,CAC3BE,qBAKC,EACDC,aAEe,EAgBd;EACD,IAAMC,KAAK,GAAGC,cAAK,CAACC,MAAM,CAAS,CAAC,CAAC;EAErC,IAAMC,OAAO,GAAGF,cAAK,CAACG,OAAO,CAAC,YAAM;IAChC,IAAI,OAAOL,aAAa,KAAK,UAAU,EAAE;MACrC,OAAO,UAACM,OAAyD,EAAK;QAClEL,KAAK,CAACM,OAAO,EAAE;QACf,OAAOP,aAAa,CAACM,OAAO,CAAC;MACjC,CAAC;IACL;IACA,OAAOE,SAAS;EACpB,CAAC,EAAE,CAACR,aAAa,CAAC,CAAC;EAEnB,IAAMS,eAAe,GAAGP,cAAK,CAACG,OAAO,CAAC,YAAM;IACxC,IAAI,OAAON,qBAAqB,KAAK,UAAU,EAAE;MAC7C,OAAO,UACHW,KAKC,EACA;QACD,OAAOX,qBAAqB,CAACW,KAAK,EAAET,KAAK,CAACM,OAAO,CAAC;MACtD,CAAC;IACL;IACA,OAAOR,qBAAqB;EAChC,CAAC,EAAE,CAACA,qBAAqB,CAAC,CAAC;EAE3B,OAAO;IAACU,eAAe,EAAfA,eAAe;IAAEL,OAAO,EAAPA;EAAO,CAAC;AACrC,CAAC","ignoreList":[]}
@@ -1,3 +1,5 @@
1
- import type { DataSourceContext, DataSourceOptions, DataSourceParams, DataSourceState } from '../../../core';
2
- import type { AnyInfiniteQueryDataSource } from './types';
1
+ import type { InfiniteData, InfiniteQueryObserverOptions } from '@tanstack/react-query';
2
+ import type { DataSourceContext, DataSourceData, DataSourceError, DataSourceKey, DataSourceOptions, DataSourceParams, DataSourceResponse, DataSourceState } from '../../../core';
3
+ import type { AnyInfiniteQueryDataSource, AnyPageParam, InfiniteQueryObserverExtendedOptions } from './types';
3
4
  export declare const useInfiniteQueryData: <TDataSource extends AnyInfiniteQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: Partial<DataSourceOptions<TDataSource>>) => DataSourceState<TDataSource>;
5
+ export declare function useInfiniteQueryDataOptions<TDataSource extends AnyInfiniteQueryDataSource>(composedOptions: InfiniteQueryObserverExtendedOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, InfiniteData<DataSourceData<TDataSource>, AnyPageParam>, DataSourceResponse<TDataSource>, DataSourceKey, AnyPageParam>): InfiniteQueryObserverOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, InfiniteData<DataSourceData<TDataSource>, AnyPageParam>, DataSourceResponse<TDataSource>, DataSourceKey, AnyPageParam>;
@@ -4,15 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useInfiniteQueryData = void 0;
7
+ exports.useInfiniteQueryDataOptions = useInfiniteQueryDataOptions;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
10
  var _react = require("react");
9
11
  var _reactQuery = require("@tanstack/react-query");
12
+ var _useRefetchInterval2 = require("../../hooks/useRefetchInterval");
10
13
  var _normalizeStatus = require("../../utils/normalizeStatus");
11
14
  var _utils = require("./utils");
12
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ var _excluded = ["refetchInterval", "queryFn"];
13
17
  var useInfiniteQueryData = exports.useInfiniteQueryData = function useInfiniteQueryData(context, dataSource, params, options) {
14
18
  var composedOptions = (0, _utils.composeOptions)(context, dataSource, params, options);
15
- var result = (0, _reactQuery.useInfiniteQuery)(composedOptions);
19
+ var extendedOptions = useInfiniteQueryDataOptions(composedOptions);
20
+ var result = (0, _reactQuery.useInfiniteQuery)(extendedOptions);
16
21
  var transformedData = (0, _react.useMemo)(function () {
17
22
  var _result$data$pages$fl, _result$data;
18
23
  return (_result$data$pages$fl = (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.pages.flat(1)) !== null && _result$data$pages$fl !== void 0 ? _result$data$pages$fl : [];
@@ -24,4 +29,17 @@ var useInfiniteQueryData = exports.useInfiniteQueryData = function useInfiniteQu
24
29
  originalData: result.data
25
30
  });
26
31
  };
32
+ function useInfiniteQueryDataOptions(composedOptions) {
33
+ var _ref = composedOptions || {},
34
+ refetchIntervalOption = _ref.refetchInterval,
35
+ queryFnOption = _ref.queryFn,
36
+ restOptions = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
+ var _useRefetchInterval = (0, _useRefetchInterval2.useRefetchInterval)(refetchIntervalOption, queryFnOption),
38
+ refetchInterval = _useRefetchInterval.refetchInterval,
39
+ queryFn = _useRefetchInterval.queryFn;
40
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restOptions), {}, {
41
+ refetchInterval: refetchInterval,
42
+ queryFn: queryFn
43
+ });
44
+ }
27
45
  // #sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactQuery","_normalizeStatus","_utils","_interopRequireDefault","e","__esModule","default","useInfiniteQueryData","exports","context","dataSource","params","options","composedOptions","composeOptions","result","useInfiniteQuery","transformedData","useMemo","_result$data$pages$fl","_result$data","data","pages","flat","_objectSpread","status","normalizeStatus","fetchStatus","originalStatus","originalData"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useInfiniteQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceOptions,\n DataSourceParams,\n DataSourceState,\n} from '../../../core';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyInfiniteQueryDataSource} from './types';\nimport {composeOptions} from './utils';\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const composedOptions = composeOptions(context, dataSource, params, options);\n const result = useInfiniteQuery(composedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => result.data?.pages.flat(1) ?? [],\n [result.data],\n );\n\n return {\n ...result,\n status: normalizeStatus(result.status, result.fetchStatus),\n data: transformedData,\n originalStatus: result.status,\n originalData: result.data,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAQA,IAAAE,gBAAA,GAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AAAsC,SAAAI,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/B,IAAMG,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAvBA,oBAAoBA,CAC7BE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAG,IAAAC,qBAAc,EAACL,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMG,MAAM,GAAG,IAAAC,4BAAgB,EAACH,eAAe,CAAC;EAEhD,IAAMI,eAAe,GAAG,IAAAC,cAAO,EAC3B;IAAA,IAAAC,qBAAA,EAAAC,YAAA;IAAA,QAAAD,qBAAA,IAAAC,YAAA,GAAML,MAAM,CAACM,IAAI,cAAAD,YAAA,uBAAXA,YAAA,CAAaE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GACtC,CAACJ,MAAM,CAACM,IAAI,CAChB,CAAC;EAED,WAAAG,sBAAA,MAAAA,sBAAA,MACOT,MAAM;IACTU,MAAM,EAAE,IAAAC,gCAAe,EAACX,MAAM,CAACU,MAAM,EAAEV,MAAM,CAACY,WAAW,CAAC;IAC1DN,IAAI,EAAEJ,eAAe;IACrBW,cAAc,EAAEb,MAAM,CAACU,MAAM;IAC7BI,YAAY,EAAEd,MAAM,CAACM;EAAI;AAEjC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactQuery","_useRefetchInterval2","_normalizeStatus","_utils","_interopRequireDefault","e","__esModule","default","useInfiniteQueryData","exports","context","dataSource","params","options","composedOptions","composeOptions","extendedOptions","useInfiniteQueryDataOptions","result","useInfiniteQuery","transformedData","useMemo","_result$data$pages$fl","_result$data","data","pages","flat","_objectSpread","status","normalizeStatus","fetchStatus","originalStatus","originalData","_ref","refetchIntervalOption","refetchInterval","queryFnOption","queryFn","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","useRefetchInterval"],"sources":["hooks.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {useInfiniteQuery} from '@tanstack/react-query';\nimport type {InfiniteData, InfiniteQueryObserverOptions} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {\n AnyInfiniteQueryDataSource,\n AnyPageParam,\n InfiniteQueryObserverExtendedOptions,\n} from './types';\nimport {composeOptions} from './utils';\n\nexport const useInfiniteQueryData = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const composedOptions = composeOptions(context, dataSource, params, options);\n\n const extendedOptions = useInfiniteQueryDataOptions(composedOptions);\n\n const result = useInfiniteQuery(extendedOptions);\n\n const transformedData = useMemo<DataSourceState<TDataSource>['data']>(\n () => result.data?.pages.flat(1) ?? [],\n [result.data],\n );\n\n return {\n ...result,\n status: normalizeStatus(result.status, result.fetchStatus),\n data: transformedData,\n originalStatus: result.status,\n originalData: result.data,\n } as DataSourceState<TDataSource>;\n};\n\nexport function useInfiniteQueryDataOptions<TDataSource extends AnyInfiniteQueryDataSource>(\n composedOptions: InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, AnyPageParam>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n AnyPageParam\n >,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, AnyPageParam>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n AnyPageParam\n> {\n const {\n refetchInterval: refetchIntervalOption,\n queryFn: queryFnOption,\n ...restOptions\n } = composedOptions || {};\n\n const {refetchInterval, queryFn} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, refetchInterval, queryFn};\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAaA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAOA,IAAAI,MAAA,GAAAJ,OAAA;AAAsC,SAAAK,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAE/B,IAAMG,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAvBA,oBAAoBA,CAC7BE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAG,IAAAC,qBAAc,EAACL,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE5E,IAAMG,eAAe,GAAGC,2BAA2B,CAACH,eAAe,CAAC;EAEpE,IAAMI,MAAM,GAAG,IAAAC,4BAAgB,EAACH,eAAe,CAAC;EAEhD,IAAMI,eAAe,GAAG,IAAAC,cAAO,EAC3B;IAAA,IAAAC,qBAAA,EAAAC,YAAA;IAAA,QAAAD,qBAAA,IAAAC,YAAA,GAAML,MAAM,CAACM,IAAI,cAAAD,YAAA,uBAAXA,YAAA,CAAaE,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GACtC,CAACJ,MAAM,CAACM,IAAI,CAChB,CAAC;EAED,WAAAG,sBAAA,MAAAA,sBAAA,MACOT,MAAM;IACTU,MAAM,EAAE,IAAAC,gCAAe,EAACX,MAAM,CAACU,MAAM,EAAEV,MAAM,CAACY,WAAW,CAAC;IAC1DN,IAAI,EAAEJ,eAAe;IACrBW,cAAc,EAAEb,MAAM,CAACU,MAAM;IAC7BI,YAAY,EAAEd,MAAM,CAACM;EAAI;AAEjC,CAAC;AAEM,SAASP,2BAA2BA,CACvCH,eAOC,EAQH;EACE,IAAAmB,IAAA,GAIInB,eAAe,IAAI,CAAC,CAAC;IAHJoB,qBAAqB,GAAAD,IAAA,CAAtCE,eAAe;IACNC,aAAa,GAAAH,IAAA,CAAtBI,OAAO;IACJC,WAAW,OAAAC,iCAAA,EAAAN,IAAA,EAAAO,SAAA;EAGlB,IAAAC,mBAAA,GAAmC,IAAAC,uCAAkB,EAACR,qBAAqB,EAAEE,aAAa,CAAC;IAApFD,eAAe,GAAAM,mBAAA,CAAfN,eAAe;IAAEE,OAAO,GAAAI,mBAAA,CAAPJ,OAAO;EAE/B,WAAAV,sBAAA,MAAAA,sBAAA,MAAWW,WAAW;IAAEH,eAAe,EAAfA,eAAe;IAAEE,OAAO,EAAPA;EAAO;AACpD","ignoreList":[]}
@@ -1,8 +1,11 @@
1
- import type { InfiniteData, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, QueryFunctionContext } from '@tanstack/react-query';
1
+ import type { DefaultError, InfiniteData, InfiniteQueryObserverResult, InfiniteQueryPageParamsOptions, QueryFunctionContext, QueryKey } from '@tanstack/react-query';
2
2
  import type { Overwrite } from 'utility-types';
3
3
  import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
4
4
  import type { QueryDataSourceContext } from '../../types';
5
- export type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, InfiniteQueryObserverOptions<TResponse, TError, InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>, TResponse, DataSourceKey, Partial<TRequest>>, ResultWrapper<InfiniteQueryObserverResult<InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>, TError>, TRequest, TResponse, TData, TError>, QueryFunctionContext<DataSourceKey, Partial<TRequest>>> & {
5
+ import type { QueryObserverExtendedOptions } from '../plain/types';
6
+ export interface InfiniteQueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends QueryObserverExtendedOptions<TQueryFnData, TError, TData, InfiniteData<TQueryData, TPageParam>, TQueryKey, TPageParam>, InfiniteQueryPageParamsOptions<TQueryFnData, TPageParam> {
7
+ }
8
+ export type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, InfiniteQueryObserverExtendedOptions<TResponse, TError, InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>, TResponse, DataSourceKey, Partial<TRequest>>, ResultWrapper<InfiniteQueryObserverResult<InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>, TError>, TRequest, TResponse, TData, TError>, QueryFunctionContext<DataSourceKey, Partial<TRequest>>> & {
6
9
  type: 'infinite';
7
10
  next: (lastPage: TResponse, allPages: TResponse[]) => Partial<TRequest> | null | undefined;
8
11
  prev?: (firstPage: TResponse, allPages: TResponse[]) => Partial<TRequest> | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n InfiniteData,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n QueryFunctionContext,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types';\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverOptions<\n TResponse,\n TError,\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TResponse,\n DataSourceKey,\n Partial<TRequest>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >,\n TRequest,\n TResponse,\n TData,\n TError\n >,\n QueryFunctionContext<DataSourceKey, Partial<TRequest>>\n> & {\n type: 'infinite';\n next: (lastPage: TResponse, allPages: TResponse[]) => Partial<TRequest> | null | undefined;\n prev?: (firstPage: TResponse, allPages: TResponse[]) => Partial<TRequest> | null | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverResult,\n InfiniteQueryPageParamsOptions,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types';\nimport type {QueryObserverExtendedOptions} from '../plain/types';\n\nexport interface InfiniteQueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends QueryObserverExtendedOptions<\n TQueryFnData,\n TError,\n TData,\n InfiniteData<TQueryData, TPageParam>,\n TQueryKey,\n TPageParam\n >,\n InfiniteQueryPageParamsOptions<TQueryFnData, TPageParam> {}\n\nexport type InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n InfiniteQueryObserverExtendedOptions<\n TResponse,\n TError,\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TResponse,\n DataSourceKey,\n Partial<TRequest>\n >,\n ResultWrapper<\n InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >,\n TRequest,\n TResponse,\n TData,\n TError\n >,\n QueryFunctionContext<DataSourceKey, Partial<TRequest>>\n> & {\n type: 'infinite';\n next: (lastPage: TResponse, allPages: TResponse[]) => Partial<TRequest> | null | undefined;\n prev?: (firstPage: TResponse, allPages: TResponse[]) => Partial<TRequest> | null | undefined;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyInfiniteQueryDataSource = InfiniteQueryDataSource<any, any, any, any, any>;\n\n// It is used instead of `Partial<DataSourceRequest<TDataSource>>` because TS can't calculate type\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPageParam = Partial<any>;\n\ntype ResultWrapper<TResult, TRequest, TResponse, TData, TError> =\n TResult extends InfiniteQueryObserverResult<\n InfiniteData<ActualData<TData, TResponse>, Partial<TRequest>>,\n TError\n >\n ? Overwrite<\n TResult,\n {\n status: DataLoaderStatus;\n data: Array<FlatArray<Array<ActualData<TData, TResponse>>, 1>>;\n }\n > & {\n originalStatus: TResult['status'];\n originalData: TResult['data'];\n }\n : never;\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { InfiniteData, InfiniteQueryObserverOptions } from '@tanstack/react-query';
1
+ import type { InfiniteData } from '@tanstack/react-query';
2
2
  import type { DataSourceContext, DataSourceData, DataSourceError, DataSourceKey, DataSourceOptions, DataSourceParams, DataSourceResponse } from '../../../core';
3
- import type { AnyInfiniteQueryDataSource, AnyPageParam } from './types';
4
- export declare const composeOptions: <TDataSource extends AnyInfiniteQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: Partial<DataSourceOptions<TDataSource>>) => InfiniteQueryObserverOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, InfiniteData<DataSourceData<TDataSource>, AnyPageParam>, DataSourceResponse<TDataSource>, DataSourceKey, AnyPageParam>;
3
+ import type { AnyInfiniteQueryDataSource, AnyPageParam, InfiniteQueryObserverExtendedOptions } from './types';
4
+ export declare const composeOptions: <TDataSource extends AnyInfiniteQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: Partial<DataSourceOptions<TDataSource>>) => InfiniteQueryObserverExtendedOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, InfiniteData<DataSourceData<TDataSource>, AnyPageParam>, DataSourceResponse<TDataSource>, DataSourceKey, AnyPageParam>;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactQuery","require","_core","_interopRequireDefault","e","__esModule","default","EMPTY_OBJECT","composeOptions","exports","context","dataSource","params","options","transformParams","transformResponse","next","prev","queryFn","fetchContext","request","paginatedRequest","_objectSpread","pageParam","fetch","queryKey","composeFullKey","idle","skipToken","select","data","pages","map","undefined","initialPageParam","getNextPageParam","getPreviousPageParam"],"sources":["utils.ts"],"sourcesContent":["import {skipToken} from '@tanstack/react-query';\nimport type {\n InfiniteData,\n InfiniteQueryObserverOptions,\n QueryFunctionContext,\n} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\n\nimport type {AnyInfiniteQueryDataSource, AnyPageParam} from './types';\n\nconst EMPTY_OBJECT = {};\n\nexport const composeOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): InfiniteQueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, AnyPageParam>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n AnyPageParam\n> => {\n const {transformParams, transformResponse, next, prev} = dataSource;\n\n const queryFn = (\n fetchContext: QueryFunctionContext<DataSourceKey, AnyPageParam>,\n ): DataSourceResponse<TDataSource> | Promise<DataSourceResponse<TDataSource>> => {\n const request = transformParams ? transformParams(params) : params;\n const paginatedRequest = {...request, ...fetchContext.pageParam};\n\n return dataSource.fetch(context, fetchContext, paginatedRequest);\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select: transformResponse\n ? (data) => ({...data, pages: data.pages.map(transformResponse)})\n : undefined,\n initialPageParam: EMPTY_OBJECT,\n getNextPageParam: next,\n getPreviousPageParam: prev,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AAAkD,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAalD,IAAMG,YAAY,GAAG,CAAC,CAAC;AAEhB,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CACvBE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAQhD;EACD,IAAOC,eAAe,GAAmCH,UAAU,CAA5DG,eAAe;IAAEC,iBAAiB,GAAgBJ,UAAU,CAA3CI,iBAAiB;IAAEC,IAAI,GAAUL,UAAU,CAAxBK,IAAI;IAAEC,IAAI,GAAIN,UAAU,CAAlBM,IAAI;EAErD,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CACTC,YAA+D,EACc;IAC7E,IAAMC,OAAO,GAAGN,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAAM;IAClE,IAAMS,gBAAgB,OAAAC,sBAAA,MAAAA,sBAAA,MAAOF,OAAO,GAAKD,YAAY,CAACI,SAAS,CAAC;IAEhE,OAAOZ,UAAU,CAACa,KAAK,CAACd,OAAO,EAAES,YAAY,EAAEE,gBAAgB,CAAC;EACpE,CAAC;EAED,WAAAC,sBAAA,MAAAA,sBAAA;IACIG,QAAQ,EAAE,IAAAC,oBAAc,EAACf,UAAU,EAAEC,MAAM,CAAC;IAC5CM,OAAO,EAAEN,MAAM,KAAKe,UAAI,GAAGC,qBAAS,GAAGV,OAAO;IAC9CW,MAAM,EAAEd,iBAAiB,GACnB,UAACe,IAAI;MAAA,WAAAR,sBAAA,MAAAA,sBAAA,MAAUQ,IAAI;QAAEC,KAAK,EAAED,IAAI,CAACC,KAAK,CAACC,GAAG,CAACjB,iBAAiB;MAAC;IAAA,CAAE,GAC/DkB,SAAS;IACfC,gBAAgB,EAAE3B,YAAY;IAC9B4B,gBAAgB,EAAEnB,IAAI;IACtBoB,oBAAoB,EAAEnB;EAAI,GACvBN,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactQuery","require","_core","_interopRequireDefault","e","__esModule","default","EMPTY_OBJECT","composeOptions","exports","context","dataSource","params","options","transformParams","transformResponse","next","prev","queryFn","fetchContext","request","paginatedRequest","_objectSpread","pageParam","fetch","queryKey","composeFullKey","idle","skipToken","select","data","pages","map","undefined","initialPageParam","getNextPageParam","getPreviousPageParam"],"sources":["utils.ts"],"sourcesContent":["import {skipToken} from '@tanstack/react-query';\nimport type {InfiniteData, QueryFunctionContext} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\n\nimport type {\n AnyInfiniteQueryDataSource,\n AnyPageParam,\n InfiniteQueryObserverExtendedOptions,\n} from './types';\n\nconst EMPTY_OBJECT = {};\n\nexport const composeOptions = <TDataSource extends AnyInfiniteQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): InfiniteQueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n InfiniteData<DataSourceData<TDataSource>, AnyPageParam>,\n DataSourceResponse<TDataSource>,\n DataSourceKey,\n AnyPageParam\n> => {\n const {transformParams, transformResponse, next, prev} = dataSource;\n\n const queryFn = (\n fetchContext: QueryFunctionContext<DataSourceKey, AnyPageParam>,\n ): DataSourceResponse<TDataSource> | Promise<DataSourceResponse<TDataSource>> => {\n const request = transformParams ? transformParams(params) : params;\n const paginatedRequest = {...request, ...fetchContext.pageParam};\n\n return dataSource.fetch(context, fetchContext, paginatedRequest);\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select: transformResponse\n ? (data) => ({...data, pages: data.pages.map(transformResponse)})\n : undefined,\n initialPageParam: EMPTY_OBJECT,\n getNextPageParam: next,\n getPreviousPageParam: prev,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,KAAA,GAAAD,OAAA;AAAkD,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAiBlD,IAAMG,YAAY,GAAG,CAAC,CAAC;AAEhB,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CACvBE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAQhD;EACD,IAAOC,eAAe,GAAmCH,UAAU,CAA5DG,eAAe;IAAEC,iBAAiB,GAAgBJ,UAAU,CAA3CI,iBAAiB;IAAEC,IAAI,GAAUL,UAAU,CAAxBK,IAAI;IAAEC,IAAI,GAAIN,UAAU,CAAlBM,IAAI;EAErD,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CACTC,YAA+D,EACc;IAC7E,IAAMC,OAAO,GAAGN,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAAM;IAClE,IAAMS,gBAAgB,OAAAC,sBAAA,MAAAA,sBAAA,MAAOF,OAAO,GAAKD,YAAY,CAACI,SAAS,CAAC;IAEhE,OAAOZ,UAAU,CAACa,KAAK,CAACd,OAAO,EAAES,YAAY,EAAEE,gBAAgB,CAAC;EACpE,CAAC;EAED,WAAAC,sBAAA,MAAAA,sBAAA;IACIG,QAAQ,EAAE,IAAAC,oBAAc,EAACf,UAAU,EAAEC,MAAM,CAAC;IAC5CM,OAAO,EAAEN,MAAM,KAAKe,UAAI,GAAGC,qBAAS,GAAGV,OAAO;IAC9CW,MAAM,EAAEd,iBAAiB,GACnB,UAACe,IAAI;MAAA,WAAAR,sBAAA,MAAAA,sBAAA,MAAUQ,IAAI;QAAEC,KAAK,EAAED,IAAI,CAACC,KAAK,CAACC,GAAG,CAACjB,iBAAiB;MAAC;IAAA,CAAE,GAC/DkB,SAAS;IACfC,gBAAgB,EAAE3B,YAAY;IAC9B4B,gBAAgB,EAAEnB,IAAI;IACtBoB,oBAAoB,EAAEnB;EAAI,GACvBN,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
@@ -1,3 +1,6 @@
1
- import type { DataSourceContext, DataSourceOptions, DataSourceParams, DataSourceState } from '../../../core';
2
- import type { AnyPlainQueryDataSource } from './types';
1
+ import { type QueryObserverOptions } from '@tanstack/react-query';
2
+ import type { DataSourceContext, DataSourceData, DataSourceError, DataSourceKey, DataSourceOptions, DataSourceParams, DataSourceResponse, DataSourceState } from '../../../core';
3
+ import type { AnyQueryDataSource } from '../../types';
4
+ import type { AnyPlainQueryDataSource, QueryObserverExtendedOptions } from './types';
3
5
  export declare const usePlainQueryData: <TDataSource extends AnyPlainQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: Partial<DataSourceOptions<TDataSource>>) => DataSourceState<TDataSource>;
6
+ export declare function useQueryDataOptions<TDataSource extends AnyQueryDataSource>(composedOptions: QueryObserverExtendedOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, DataSourceData<TDataSource>, DataSourceResponse<TDataSource>, DataSourceKey>): QueryObserverOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, DataSourceData<TDataSource>, DataSourceResponse<TDataSource>, DataSourceKey>;
@@ -4,17 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.usePlainQueryData = void 0;
7
+ exports.useQueryDataOptions = useQueryDataOptions;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
10
  var _reactQuery = require("@tanstack/react-query");
11
+ var _useRefetchInterval2 = require("../../hooks/useRefetchInterval");
9
12
  var _normalizeStatus = require("../../utils/normalizeStatus");
10
13
  var _utils = require("./utils");
11
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ var _excluded = ["refetchInterval", "queryFn"];
12
16
  var usePlainQueryData = exports.usePlainQueryData = function usePlainQueryData(context, dataSource, params, options) {
13
17
  var composedOptions = (0, _utils.composeOptions)(context, dataSource, params, options);
14
- var result = (0, _reactQuery.useQuery)(composedOptions);
18
+ var extendedOptions = useQueryDataOptions(composedOptions);
19
+ var result = (0, _reactQuery.useQuery)(extendedOptions);
15
20
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, result), {}, {
16
21
  status: (0, _normalizeStatus.normalizeStatus)(result.status, result.fetchStatus),
17
22
  originalStatus: result.status
18
23
  });
19
24
  };
25
+ function useQueryDataOptions(composedOptions) {
26
+ var _ref = composedOptions || {},
27
+ refetchIntervalOption = _ref.refetchInterval,
28
+ queryFnOption = _ref.queryFn,
29
+ restOptions = (0, _objectWithoutProperties2.default)(_ref, _excluded);
30
+ var _useRefetchInterval = (0, _useRefetchInterval2.useRefetchInterval)(refetchIntervalOption, queryFnOption),
31
+ refetchInterval = _useRefetchInterval.refetchInterval,
32
+ queryFn = _useRefetchInterval.queryFn;
33
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restOptions), {}, {
34
+ refetchInterval: refetchInterval,
35
+ queryFn: queryFn
36
+ });
37
+ }
20
38
  // #sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactQuery","require","_normalizeStatus","_utils","_interopRequireDefault","e","__esModule","default","usePlainQueryData","exports","context","dataSource","params","options","composedOptions","composeOptions","result","useQuery","_objectSpread","status","normalizeStatus","fetchStatus","originalStatus"],"sources":["hooks.ts"],"sourcesContent":["import {useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceOptions,\n DataSourceParams,\n DataSourceState,\n} from '../../../core';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyPlainQueryDataSource} from './types';\nimport {composeOptions} from './utils';\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const composedOptions = composeOptions(context, dataSource, params, options);\n const result = useQuery(composedOptions);\n\n return {\n ...result,\n status: normalizeStatus(result.status, result.fetchStatus),\n originalStatus: result.status,\n } as DataSourceState<TDataSource>;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,gBAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AAAsC,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/B,IAAMG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAC1BE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAG,IAAAC,qBAAc,EAACL,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC5E,IAAMG,MAAM,GAAG,IAAAC,oBAAQ,EAACH,eAAe,CAAC;EAExC,WAAAI,sBAAA,MAAAA,sBAAA,MACOF,MAAM;IACTG,MAAM,EAAE,IAAAC,gCAAe,EAACJ,MAAM,CAACG,MAAM,EAAEH,MAAM,CAACK,WAAW,CAAC;IAC1DC,cAAc,EAAEN,MAAM,CAACG;EAAM;AAErC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactQuery","require","_useRefetchInterval2","_normalizeStatus","_utils","_interopRequireDefault","e","__esModule","default","usePlainQueryData","exports","context","dataSource","params","options","composedOptions","composeOptions","extendedOptions","useQueryDataOptions","result","useQuery","_objectSpread","status","normalizeStatus","fetchStatus","originalStatus","_ref","refetchIntervalOption","refetchInterval","queryFnOption","queryFn","restOptions","_objectWithoutProperties","_excluded","_useRefetchInterval","useRefetchInterval"],"sources":["hooks.ts"],"sourcesContent":["import {type QueryObserverOptions, useQuery} from '@tanstack/react-query';\n\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n DataSourceState,\n} from '../../../core';\nimport {useRefetchInterval} from '../../hooks/useRefetchInterval';\nimport type {AnyQueryDataSource} from '../../types';\nimport {normalizeStatus} from '../../utils/normalizeStatus';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\nimport {composeOptions} from './utils';\n\nexport const usePlainQueryData = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): DataSourceState<TDataSource> => {\n const composedOptions = composeOptions(context, dataSource, params, options);\n\n const extendedOptions = useQueryDataOptions(composedOptions);\n\n const result = useQuery(extendedOptions);\n\n return {\n ...result,\n status: normalizeStatus(result.status, result.fetchStatus),\n originalStatus: result.status,\n } as DataSourceState<TDataSource>;\n};\n\nexport function useQueryDataOptions<TDataSource extends AnyQueryDataSource>(\n composedOptions: QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n >,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> {\n const {\n refetchInterval: refetchIntervalOption,\n queryFn: queryFnOption,\n ...restOptions\n } = composedOptions || {};\n\n const {refetchInterval, queryFn} = useRefetchInterval(refetchIntervalOption, queryFnOption);\n\n return {...restOptions, refetchInterval, queryFn};\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAYA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,gBAAA,GAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAH,OAAA;AAAsC,SAAAI,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAE/B,IAAMG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAC1BE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAClB;EAC/B,IAAMC,eAAe,GAAG,IAAAC,qBAAc,EAACL,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE5E,IAAMG,eAAe,GAAGC,mBAAmB,CAACH,eAAe,CAAC;EAE5D,IAAMI,MAAM,GAAG,IAAAC,oBAAQ,EAACH,eAAe,CAAC;EAExC,WAAAI,sBAAA,MAAAA,sBAAA,MACOF,MAAM;IACTG,MAAM,EAAE,IAAAC,gCAAe,EAACJ,MAAM,CAACG,MAAM,EAAEH,MAAM,CAACK,WAAW,CAAC;IAC1DC,cAAc,EAAEN,MAAM,CAACG;EAAM;AAErC,CAAC;AAEM,SAASJ,mBAAmBA,CAC/BH,eAMC,EAOH;EACE,IAAAW,IAAA,GAIIX,eAAe,IAAI,CAAC,CAAC;IAHJY,qBAAqB,GAAAD,IAAA,CAAtCE,eAAe;IACNC,aAAa,GAAAH,IAAA,CAAtBI,OAAO;IACJC,WAAW,OAAAC,iCAAA,EAAAN,IAAA,EAAAO,SAAA;EAGlB,IAAAC,mBAAA,GAAmC,IAAAC,uCAAkB,EAACR,qBAAqB,EAAEE,aAAa,CAAC;IAApFD,eAAe,GAAAM,mBAAA,CAAfN,eAAe;IAAEE,OAAO,GAAAI,mBAAA,CAAPJ,OAAO;EAE/B,WAAAT,sBAAA,MAAAA,sBAAA,MAAWU,WAAW;IAAEH,eAAe,EAAfA,eAAe;IAAEE,OAAO,EAAPA;EAAO;AACpD","ignoreList":[]}
@@ -1,8 +1,9 @@
1
- import type { QueryFunctionContext, QueryObserverOptions, QueryObserverResult } from '@tanstack/react-query';
1
+ import type { DefaultError, QueryFunctionContext, QueryKey, QueryObserverOptions, QueryObserverResult } from '@tanstack/react-query';
2
2
  import type { Overwrite } from 'utility-types';
3
3
  import type { ActualData, DataLoaderStatus, DataSource, DataSourceKey } from '../../../core';
4
- import type { QueryDataSourceContext } from '../../types';
5
- export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, QueryObserverOptions<TResponse, TError, ActualData<TData, TResponse>, TResponse, DataSourceKey>, ResultWrapper<QueryObserverResult<ActualData<TData, TResponse>, TError>, TResponse, TData, TError>, QueryFunctionContext<DataSourceKey>> & {
4
+ import type { QueryDataExtendedOptions, QueryDataSourceContext } from '../../types';
5
+ export type QueryObserverExtendedOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never> = Omit<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'refetchInterval'> & QueryDataExtendedOptions<TQueryFnData, TError, TQueryData, TQueryKey>;
6
+ export type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<QueryDataSourceContext, TParams, TRequest, TResponse, TData, TError, QueryObserverExtendedOptions<TResponse, TError, ActualData<TData, TResponse>, TResponse, DataSourceKey>, ResultWrapper<QueryObserverResult<ActualData<TData, TResponse>, TError>, TResponse, TData, TError>, QueryFunctionContext<DataSourceKey>> & {
6
7
  type: 'plain';
7
8
  };
8
9
  export type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n QueryFunctionContext,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataSourceContext} from '../../types';\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverOptions<TResponse, TError, ActualData<TData, TResponse>, TResponse, DataSourceKey>,\n ResultWrapper<\n QueryObserverResult<ActualData<TData, TResponse>, TError>,\n TResponse,\n TData,\n TError\n >,\n QueryFunctionContext<DataSourceKey>\n> & {\n type: 'plain';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError> =\n TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError>\n ? Overwrite<TResult, {status: DataLoaderStatus}> & {originalStatus: TResult['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n DefaultError,\n QueryFunctionContext,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/react-query';\nimport type {Overwrite} from 'utility-types';\n\nimport type {ActualData, DataLoaderStatus, DataSource, DataSourceKey} from '../../../core';\nimport type {QueryDataExtendedOptions, QueryDataSourceContext} from '../../types';\n\nexport type QueryObserverExtendedOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = never,\n> = Omit<\n QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>,\n 'refetchInterval'\n> &\n QueryDataExtendedOptions<TQueryFnData, TError, TQueryData, TQueryKey>;\n\nexport type PlainQueryDataSource<TParams, TRequest, TResponse, TData, TError> = DataSource<\n QueryDataSourceContext,\n TParams,\n TRequest,\n TResponse,\n TData,\n TError,\n QueryObserverExtendedOptions<\n TResponse,\n TError,\n ActualData<TData, TResponse>,\n TResponse,\n DataSourceKey\n >,\n ResultWrapper<\n QueryObserverResult<ActualData<TData, TResponse>, TError>,\n TResponse,\n TData,\n TError\n >,\n QueryFunctionContext<DataSourceKey>\n> & {\n type: 'plain';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyPlainQueryDataSource = PlainQueryDataSource<any, any, any, any, any>;\n\ntype ResultWrapper<TResult, TResponse, TData, TError> =\n TResult extends QueryObserverResult<ActualData<TData, TResponse>, TError>\n ? Overwrite<TResult, {status: DataLoaderStatus}> & {originalStatus: TResult['status']}\n : never;\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { type QueryObserverOptions } from '@tanstack/react-query';
2
1
  import type { DataSourceContext, DataSourceData, DataSourceError, DataSourceKey, DataSourceOptions, DataSourceParams, DataSourceResponse } from '../../../core';
3
- import type { AnyPlainQueryDataSource } from './types';
4
- export declare const composeOptions: <TDataSource extends AnyPlainQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: Partial<DataSourceOptions<TDataSource>>) => QueryObserverOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, DataSourceData<TDataSource>, DataSourceResponse<TDataSource>, DataSourceKey>;
2
+ import type { AnyPlainQueryDataSource, QueryObserverExtendedOptions } from './types';
3
+ export declare const composeOptions: <TDataSource extends AnyPlainQueryDataSource>(context: DataSourceContext<TDataSource>, dataSource: TDataSource, params: DataSourceParams<TDataSource>, options?: Partial<DataSourceOptions<TDataSource>>) => QueryObserverExtendedOptions<DataSourceResponse<TDataSource>, DataSourceError<TDataSource>, DataSourceData<TDataSource>, DataSourceResponse<TDataSource>, DataSourceKey>;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactQuery","require","_core","_interopRequireDefault","e","__esModule","default","composeOptions","exports","context","dataSource","params","options","transformParams","queryFn","fetchContext","fetch","_objectSpread","queryKey","composeFullKey","idle","skipToken","select","transformResponse"],"sources":["utils.ts"],"sourcesContent":["import {\n type QueryFunctionContext,\n type QueryObserverOptions,\n skipToken,\n} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\n\nimport type {AnyPlainQueryDataSource} from './types';\n\nexport const composeOptions = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): QueryObserverOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {transformParams} = dataSource;\n\n const queryFn = (\n fetchContext: QueryFunctionContext<DataSourceKey>,\n ): DataSourceResponse<TDataSource> | Promise<DataSourceResponse<TDataSource>> => {\n return dataSource.fetch(\n context,\n fetchContext,\n transformParams ? transformParams(params) : params,\n );\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select: dataSource.transformResponse,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AAAkD,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAa3C,IAAMG,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CACvBE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAOhD;EACD,IAAOC,eAAe,GAAIH,UAAU,CAA7BG,eAAe;EAEtB,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CACTC,YAAiD,EAC4B;IAC7E,OAAOL,UAAU,CAACM,KAAK,CACnBP,OAAO,EACPM,YAAY,EACZF,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAChD,CAAC;EACL,CAAC;EAED,WAAAM,sBAAA,MAAAA,sBAAA;IACIC,QAAQ,EAAE,IAAAC,oBAAc,EAACT,UAAU,EAAEC,MAAM,CAAC;IAC5CG,OAAO,EAAEH,MAAM,KAAKS,UAAI,GAAGC,qBAAS,GAAGP,OAAO;IAC9CQ,MAAM,EAAEZ,UAAU,CAACa;EAAiB,GACjCb,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactQuery","require","_core","_interopRequireDefault","e","__esModule","default","composeOptions","exports","context","dataSource","params","options","transformParams","queryFn","fetchContext","fetch","_objectSpread","queryKey","composeFullKey","idle","skipToken","select","transformResponse"],"sources":["utils.ts"],"sourcesContent":["import {type QueryFunctionContext, skipToken} from '@tanstack/react-query';\n\nimport {composeFullKey, idle} from '../../../core';\nimport type {\n DataSourceContext,\n DataSourceData,\n DataSourceError,\n DataSourceKey,\n DataSourceOptions,\n DataSourceParams,\n DataSourceResponse,\n} from '../../../core';\n\nimport type {AnyPlainQueryDataSource, QueryObserverExtendedOptions} from './types';\n\nexport const composeOptions = <TDataSource extends AnyPlainQueryDataSource>(\n context: DataSourceContext<TDataSource>,\n dataSource: TDataSource,\n params: DataSourceParams<TDataSource>,\n options?: Partial<DataSourceOptions<TDataSource>>,\n): QueryObserverExtendedOptions<\n DataSourceResponse<TDataSource>,\n DataSourceError<TDataSource>,\n DataSourceData<TDataSource>,\n DataSourceResponse<TDataSource>,\n DataSourceKey\n> => {\n const {transformParams} = dataSource;\n\n const queryFn = (\n fetchContext: QueryFunctionContext<DataSourceKey>,\n ): DataSourceResponse<TDataSource> | Promise<DataSourceResponse<TDataSource>> => {\n return dataSource.fetch(\n context,\n fetchContext,\n transformParams ? transformParams(params) : params,\n );\n };\n\n return {\n queryKey: composeFullKey(dataSource, params),\n queryFn: params === idle ? skipToken : queryFn,\n select: dataSource.transformResponse,\n ...dataSource.options,\n ...options,\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAAkD,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAa3C,IAAMG,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CACvBE,OAAuC,EACvCC,UAAuB,EACvBC,MAAqC,EACrCC,OAAiD,EAOhD;EACD,IAAOC,eAAe,GAAIH,UAAU,CAA7BG,eAAe;EAEtB,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CACTC,YAAiD,EAC4B;IAC7E,OAAOL,UAAU,CAACM,KAAK,CACnBP,OAAO,EACPM,YAAY,EACZF,eAAe,GAAGA,eAAe,CAACF,MAAM,CAAC,GAAGA,MAChD,CAAC;EACL,CAAC;EAED,WAAAM,sBAAA,MAAAA,sBAAA;IACIC,QAAQ,EAAE,IAAAC,oBAAc,EAACT,UAAU,EAAEC,MAAM,CAAC;IAC5CG,OAAO,EAAEH,MAAM,KAAKS,UAAI,GAAGC,qBAAS,GAAGP,OAAO;IAC9CQ,MAAM,EAAEZ,UAAU,CAACa;EAAiB,GACjCb,UAAU,CAACE,OAAO,GAClBA,OAAO;AAElB,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- export type { QueryDataSourceContext, AnyQueryDataSource } from './types';
1
+ export type { QueryDataSourceContext, AnyQueryDataSource, ProgressiveRefetchInterval, RefetchInterval, RefetchIntervalFunction, } from './types';
2
2
  export { useQueryContext } from './hooks/useQueryContext';
3
3
  export { useQueryData } from './hooks/useQueryData';
4
4
  export { useQueryResponses } from './hooks/useQueryResponses';
@@ -11,5 +11,6 @@ export type { PlainQueryDataSource, AnyPlainQueryDataSource } from './impl/plain
11
11
  export { makePlainQueryDataSource } from './impl/plain/factory';
12
12
  export { composeOptions as composePlainQueryOptions } from './impl/plain/utils';
13
13
  export { normalizeStatus } from './utils/normalizeStatus';
14
+ export { getProgressiveRefetch } from './utils/getProgressiveRefetch';
14
15
  export type { ClientDataManagerConfig } from './ClientDataManager';
15
16
  export { ClientDataManager } from './ClientDataManager';