@ainias42/tanstack-ids 0.0.6 → 0.1.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/dist/QueryContext/QueriesContextProvider.js +1 -1
- package/dist/QueryContext/QueriesContextProvider.js.map +1 -1
- package/dist/QueryContext/SubQueriesContext.js +1 -1
- package/dist/QueryContext/SubQueriesContext.js.map +1 -1
- package/dist/QueryContext/useQueriesStore.d.ts +66 -2
- package/dist/generateIdsQuery.d.ts +14 -300
- package/dist/generateIdsQuery.js +41 -8
- package/dist/generateIdsQuery.js.map +1 -1
- package/dist/generateNestedIdQuery.d.ts +11 -301
- package/dist/generateQuery.d.ts +1 -1
- package/dist/hoistReactQueryKitAttributes.d.ts +2 -2
- package/dist/hoistReactQueryKitAttributes.js +1 -5
- package/dist/hoistReactQueryKitAttributes.js.map +1 -1
- package/dist/hooks/useArrayData.d.ts +1 -1
- package/dist/hooks/useArrayData.js +4 -1
- package/dist/hooks/useArrayData.js.map +1 -1
- package/package.json +12 -8
- package/src/QueryContext/QueriesContextProvider.tsx +1 -1
- package/src/QueryContext/SubQueriesContext.tsx +1 -1
- package/src/generateIdsQuery.ts +64 -16
- package/src/hoistReactQueryKitAttributes.ts +13 -11
- package/src/hooks/useArrayData.ts +3 -2
- package/tsconfig.json +1 -0
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -3,21 +3,23 @@ export declare function generateNestedIdQuery<IdType extends number | string | s
|
|
|
3
3
|
id: IdType;
|
|
4
4
|
}, Args extends any[]>(key: string, fetcherFactory: (...args: Args) => (ids: IdType[]) => Promise<Type[]> | Type[]): {
|
|
5
5
|
(...args: Args): {
|
|
6
|
-
useMany: import("react-query-kit").ExposeMethods<Type, [IdType], Error> & ((ids: IdType[], otherAdditionalQueryOptions?: Omit<import("@tanstack/react-query").UseQueryOptions<Type, unknown, Type, [string, [IdType]]>, "queryKey" | "fetcher" | "context"> & {
|
|
6
|
+
useMany: import("react-query-kit").ExposeMethods<Type, [IdType], Error, never> & ((ids: IdType[], otherAdditionalQueryOptions?: Omit<import("@tanstack/react-query").UseQueryOptions<Type, unknown, Type, [string, [IdType]]>, "queryKey" | "fetcher" | "context"> & {
|
|
7
7
|
reloadWithContext?: boolean;
|
|
8
8
|
}) => Partial<Record<IdType, import("@tanstack/react-query").UseQueryResult<Type, Error> | undefined>>);
|
|
9
|
-
useOne: import("react-query-kit").ExposeMethods<Type, [IdType], Error> & ((identifier: IdType, otherAdditionalQueryOptions?: Omit<import("react-query-kit").QueryHookOptions<Type, unknown, Type, [IdType]>, "queryKey" | "fetcher" | "variables" | "context"> & {
|
|
9
|
+
useOne: import("react-query-kit").ExposeMethods<Type, [IdType], Error, never> & ((identifier: IdType, otherAdditionalQueryOptions?: Omit<import("react-query-kit").QueryHookOptions<Type, unknown, Type, [IdType]>, "queryKey" | "fetcher" | "variables" | "context"> & {
|
|
10
10
|
reloadWithContext?: boolean;
|
|
11
11
|
}) => import("react-query-kit").QueryHookResult<Type, Error>);
|
|
12
12
|
generateFilter: <Func extends (...args: any[]) => Type[] | Promise<Type[]>, FuncArguments extends Parameters<Func>["length"] extends 0 ? void : Parameters<Func> = Parameters<Func>["length"] extends 0 ? void : Parameters<Func>, ResultAsArray extends boolean = false>(filterFunc: Func, additionalOptions?: (Omit<import("react-query-kit").CreateQueryOptions<IdType[], [FuncArguments], Error>, "queryKey" | "fetcher"> & {
|
|
13
13
|
resultAsArray?: ResultAsArray | undefined;
|
|
14
14
|
subKey?: string;
|
|
15
|
-
}) | undefined) => import("react-query-kit").ExposeMethods<IdType[], void | (void & [filter: FuncArguments]), Error> & (<Args_1 extends FuncArguments extends void ? [] : FuncArguments>(
|
|
15
|
+
}) | undefined) => import("react-query-kit").ExposeMethods<IdType[], void | (void & [filter: FuncArguments]), Error, never> & (<Args_1 extends FuncArguments extends void ? [] : FuncArguments>(args: Args_1, filterQueryOptions?: Omit<import("react-query-kit").CreateQueryOptions<Type[], [FuncArguments], Error>, "queryKey" | "fetcher" | "variables">) => ResultAsArray extends true ? import("@tanstack/react-query").UseQueryResult<Type, Error>[] : Partial<Record<IdType, import("@tanstack/react-query").UseQueryResult<Type, Error> | undefined>>) & {
|
|
16
|
+
getKey: (variables?: (((FuncArguments extends void ? [] : FuncArguments) extends infer T ? T extends (FuncArguments extends void ? [] : FuncArguments) ? T extends object ? { [P in keyof T]?: (T[P] extends infer T_1 ? T_1 extends T[P] ? T_1 extends object ? { [P_2 in keyof T_1]?: (T_1[P_2] extends infer T_2 ? T_2 extends T_1[P_2] ? T_2 extends object ? { [P_3 in keyof T_2]?: (T_2[P_3] extends infer T_3 ? T_3 extends T_2[P_3] ? T_3 extends object ? { [P_4 in keyof T_3]?: (T_3[P_4] extends infer T_4 ? T_4 extends T_3[P_4] ? T_4 extends object ? { [P_5 in keyof T_4]?: (T_4[P_5] extends infer T_5 ? T_5 extends T_4[P_5] ? T_5 extends object ? { [P_6 in keyof T_5]?: (T_5[P_6] extends infer T_6 ? T_6 extends T_5[P_6] ? T_6 extends object ? { [P_7 in keyof T_6]?: (T_6[P_7] extends infer T_7 ? T_7 extends T_6[P_7] ? T_7 extends object ? { [P_8 in keyof T_7]?: (T_7[P_8] extends infer T_8 ? T_8 extends T_7[P_8] ? T_8 extends object ? { [P_9 in keyof T_8]?: (T_8[P_9] extends infer T_9 ? T_9 extends T_8[P_9] ? T_9 extends object ? { [P_10 in keyof T_9]?: (T_9[P_10] extends infer T_10 ? T_10 extends T_9[P_10] ? T_10 extends object ? { [P_11 in keyof T_10]?: /*elided*/ any | undefined; } : T_10 : never : never) | undefined; } : T_9 : never : never) | undefined; } : T_8 : never : never) | undefined; } : T_7 : never : never) | undefined; } : T_6 : never : never) | undefined; } : T_5 : never : never) | undefined; } : T_4 : never : never) | undefined; } : T_3 : never : never) | undefined; } : T_2 : never : never) | undefined; } : T_1 : never : never) | undefined; } : T : never : never) | [((FuncArguments extends object ? { [P_1 in keyof FuncArguments]?: (FuncArguments[P_1] extends infer T_1 ? T_1 extends FuncArguments[P_1] ? T_1 extends object ? { [P_3 in keyof T_1]?: (T_1[P_3] extends infer T_2 ? T_2 extends T_1[P_3] ? T_2 extends object ? { [P_4 in keyof T_2]?: (T_2[P_4] extends infer T_3 ? T_3 extends T_2[P_4] ? T_3 extends object ? { [P_5 in keyof T_3]?: (T_3[P_5] extends infer T_4 ? T_4 extends T_3[P_5] ? T_4 extends object ? { [P_6 in keyof T_4]?: (T_4[P_6] extends infer T_5 ? T_5 extends T_4[P_6] ? T_5 extends object ? { [P_7 in keyof T_5]?: (T_5[P_7] extends infer T_6 ? T_6 extends T_5[P_7] ? T_6 extends object ? { [P_8 in keyof T_6]?: (T_6[P_8] extends infer T_7 ? T_7 extends T_6[P_8] ? T_7 extends object ? { [P_9 in keyof T_7]?: (T_7[P_9] extends infer T_8 ? T_8 extends T_7[P_9] ? T_8 extends object ? { [P_10 in keyof T_8]?: (T_8[P_10] extends infer T_9 ? T_9 extends T_8[P_10] ? T_9 extends object ? { [P_11 in keyof T_9]?: (T_9[P_11] extends infer T_10 ? T_10 extends T_9[P_11] ? T_10 extends object ? { [P_12 in keyof T_10]?: /*elided*/ any | undefined; } : T_10 : never : never) | undefined; } : T_9 : never : never) | undefined; } : T_8 : never : never) | undefined; } : T_7 : never : never) | undefined; } : T_6 : never : never) | undefined; } : T_5 : never : never) | undefined; } : T_4 : never : never) | undefined; } : T_3 : never : never) | undefined; } : T_2 : never : never) | undefined; } : T_1 : never : never) | undefined; } : FuncArguments) | undefined)?]) | undefined) => readonly unknown[];
|
|
17
|
+
};
|
|
16
18
|
generateInfiniteQuery: <PageParams, Meta, FuncArguments extends any[] = []>({ queryFn, ...options }: Omit<import("react-query-kit").CreateInfiniteQueryOptions<{
|
|
17
19
|
data: IdType[];
|
|
18
20
|
meta: Meta;
|
|
19
21
|
}, FuncArguments, Error, PageParams>, "queryKey" | "fetcher" | "getNextPageParam" | "getPreviousPageParam"> & {
|
|
20
|
-
queryFn: (pageParams: PageParams, args: FuncArguments, context: import("@tanstack/
|
|
22
|
+
queryFn: (pageParams: PageParams, args: FuncArguments, context: import("@tanstack/query-core").QueryFunctionContext<[string, FuncArguments], PageParams>) => import("@ainias42/js-helper").Awaitable<{
|
|
21
23
|
data: Type[];
|
|
22
24
|
meta: Meta;
|
|
23
25
|
}>;
|
|
@@ -40,7 +42,7 @@ export declare function generateNestedIdQuery<IdType extends number | string | s
|
|
|
40
42
|
}) => import("react-query-kit").ExposeMethods<{
|
|
41
43
|
data: IdType[];
|
|
42
44
|
meta: Meta;
|
|
43
|
-
}, FuncArguments, Error> & ((...args: FuncArguments extends symbol | {
|
|
45
|
+
}, FuncArguments, Error, PageParams> & ((...args: FuncArguments extends symbol | {
|
|
44
46
|
length: 0;
|
|
45
47
|
} | undefined ? [] | [import("@ainias42/js-helper").Override<import("react-query-kit").InfiniteQueryHookOptions<{
|
|
46
48
|
data: IdType[];
|
|
@@ -68,306 +70,14 @@ export declare function generateNestedIdQuery<IdType extends number | string | s
|
|
|
68
70
|
}[];
|
|
69
71
|
pageParams: PageParams[];
|
|
70
72
|
} | undefined;
|
|
71
|
-
}>]) => {
|
|
72
|
-
data:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
} | undefined;
|
|
76
|
-
error: Error;
|
|
77
|
-
isError: true;
|
|
78
|
-
isPending: false;
|
|
79
|
-
isLoading: false;
|
|
80
|
-
isLoadingError: false;
|
|
81
|
-
isRefetchError: true;
|
|
82
|
-
isSuccess: false;
|
|
83
|
-
isPlaceholderData: false;
|
|
84
|
-
status: "error";
|
|
85
|
-
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
86
|
-
data: IdType[];
|
|
87
|
-
meta: Meta;
|
|
88
|
-
}, PageParams>, Error>>;
|
|
89
|
-
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
90
|
-
data: IdType[];
|
|
91
|
-
meta: Meta;
|
|
92
|
-
}, PageParams>, Error>>;
|
|
93
|
-
hasNextPage: boolean;
|
|
94
|
-
hasPreviousPage: boolean;
|
|
95
|
-
isFetchNextPageError: boolean;
|
|
96
|
-
isFetchingNextPage: boolean;
|
|
97
|
-
isFetchPreviousPageError: boolean;
|
|
98
|
-
isFetchingPreviousPage: boolean;
|
|
99
|
-
dataUpdatedAt: number;
|
|
100
|
-
errorUpdatedAt: number;
|
|
101
|
-
failureCount: number;
|
|
102
|
-
failureReason: Error | null;
|
|
103
|
-
errorUpdateCount: number;
|
|
104
|
-
isFetched: boolean;
|
|
105
|
-
isFetchedAfterMount: boolean;
|
|
106
|
-
isFetching: boolean;
|
|
107
|
-
isInitialLoading: boolean;
|
|
108
|
-
isPaused: boolean;
|
|
109
|
-
isRefetching: boolean;
|
|
110
|
-
isStale: boolean;
|
|
111
|
-
isEnabled: boolean;
|
|
112
|
-
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
113
|
-
data: IdType[];
|
|
114
|
-
meta: Meta;
|
|
115
|
-
}, PageParams>, Error>>;
|
|
116
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
117
|
-
promise: Promise<import("@tanstack/react-query").InfiniteData<{
|
|
118
|
-
data: IdType[];
|
|
119
|
-
meta: Meta;
|
|
120
|
-
}, PageParams>>;
|
|
121
|
-
} | {
|
|
122
|
-
data: {
|
|
123
|
-
pages: Exclude<Partial<Record<IdType, Type | undefined>>[IdType], undefined>[][];
|
|
124
|
-
pageParams: PageParams[];
|
|
125
|
-
} | undefined;
|
|
126
|
-
error: null;
|
|
127
|
-
isError: false;
|
|
128
|
-
isPending: false;
|
|
129
|
-
isLoading: false;
|
|
130
|
-
isLoadingError: false;
|
|
131
|
-
isRefetchError: false;
|
|
132
|
-
isFetchNextPageError: false;
|
|
133
|
-
isFetchPreviousPageError: false;
|
|
134
|
-
isSuccess: true;
|
|
135
|
-
isPlaceholderData: false;
|
|
136
|
-
status: "success";
|
|
137
|
-
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
138
|
-
data: IdType[];
|
|
139
|
-
meta: Meta;
|
|
140
|
-
}, PageParams>, Error>>;
|
|
141
|
-
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
142
|
-
data: IdType[];
|
|
143
|
-
meta: Meta;
|
|
144
|
-
}, PageParams>, Error>>;
|
|
145
|
-
hasNextPage: boolean;
|
|
146
|
-
hasPreviousPage: boolean;
|
|
147
|
-
isFetchingNextPage: boolean;
|
|
148
|
-
isFetchingPreviousPage: boolean;
|
|
149
|
-
dataUpdatedAt: number;
|
|
150
|
-
errorUpdatedAt: number;
|
|
151
|
-
failureCount: number;
|
|
152
|
-
failureReason: Error | null;
|
|
153
|
-
errorUpdateCount: number;
|
|
154
|
-
isFetched: boolean;
|
|
155
|
-
isFetchedAfterMount: boolean;
|
|
156
|
-
isFetching: boolean;
|
|
157
|
-
isInitialLoading: boolean;
|
|
158
|
-
isPaused: boolean;
|
|
159
|
-
isRefetching: boolean;
|
|
160
|
-
isStale: boolean;
|
|
161
|
-
isEnabled: boolean;
|
|
162
|
-
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
163
|
-
data: IdType[];
|
|
164
|
-
meta: Meta;
|
|
165
|
-
}, PageParams>, Error>>;
|
|
166
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
167
|
-
promise: Promise<import("@tanstack/react-query").InfiniteData<{
|
|
168
|
-
data: IdType[];
|
|
169
|
-
meta: Meta;
|
|
170
|
-
}, PageParams>>;
|
|
171
|
-
} | {
|
|
172
|
-
data: {
|
|
173
|
-
pages: Exclude<Partial<Record<IdType, Type | undefined>>[IdType], undefined>[][];
|
|
174
|
-
pageParams: PageParams[];
|
|
175
|
-
} | undefined;
|
|
176
|
-
error: Error;
|
|
177
|
-
isError: true;
|
|
178
|
-
isPending: false;
|
|
179
|
-
isLoading: false;
|
|
180
|
-
isLoadingError: true;
|
|
181
|
-
isRefetchError: false;
|
|
182
|
-
isFetchNextPageError: false;
|
|
183
|
-
isFetchPreviousPageError: false;
|
|
184
|
-
isSuccess: false;
|
|
185
|
-
isPlaceholderData: false;
|
|
186
|
-
status: "error";
|
|
187
|
-
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
188
|
-
data: IdType[];
|
|
189
|
-
meta: Meta;
|
|
190
|
-
}, PageParams>, Error>>;
|
|
191
|
-
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
192
|
-
data: IdType[];
|
|
193
|
-
meta: Meta;
|
|
194
|
-
}, PageParams>, Error>>;
|
|
195
|
-
hasNextPage: boolean;
|
|
196
|
-
hasPreviousPage: boolean;
|
|
197
|
-
isFetchingNextPage: boolean;
|
|
198
|
-
isFetchingPreviousPage: boolean;
|
|
199
|
-
dataUpdatedAt: number;
|
|
200
|
-
errorUpdatedAt: number;
|
|
201
|
-
failureCount: number;
|
|
202
|
-
failureReason: Error | null;
|
|
203
|
-
errorUpdateCount: number;
|
|
204
|
-
isFetched: boolean;
|
|
205
|
-
isFetchedAfterMount: boolean;
|
|
206
|
-
isFetching: boolean;
|
|
207
|
-
isInitialLoading: boolean;
|
|
208
|
-
isPaused: boolean;
|
|
209
|
-
isRefetching: boolean;
|
|
210
|
-
isStale: boolean;
|
|
211
|
-
isEnabled: boolean;
|
|
212
|
-
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
213
|
-
data: IdType[];
|
|
214
|
-
meta: Meta;
|
|
215
|
-
}, PageParams>, Error>>;
|
|
216
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
217
|
-
promise: Promise<import("@tanstack/react-query").InfiniteData<{
|
|
218
|
-
data: IdType[];
|
|
219
|
-
meta: Meta;
|
|
220
|
-
}, PageParams>>;
|
|
221
|
-
} | {
|
|
222
|
-
data: {
|
|
223
|
-
pages: Exclude<Partial<Record<IdType, Type | undefined>>[IdType], undefined>[][];
|
|
224
|
-
pageParams: PageParams[];
|
|
225
|
-
} | undefined;
|
|
226
|
-
error: null;
|
|
227
|
-
isError: false;
|
|
228
|
-
isPending: true;
|
|
229
|
-
isLoading: true;
|
|
230
|
-
isLoadingError: false;
|
|
231
|
-
isRefetchError: false;
|
|
232
|
-
isFetchNextPageError: false;
|
|
233
|
-
isFetchPreviousPageError: false;
|
|
234
|
-
isSuccess: false;
|
|
235
|
-
isPlaceholderData: false;
|
|
236
|
-
status: "pending";
|
|
237
|
-
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
238
|
-
data: IdType[];
|
|
239
|
-
meta: Meta;
|
|
240
|
-
}, PageParams>, Error>>;
|
|
241
|
-
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
242
|
-
data: IdType[];
|
|
243
|
-
meta: Meta;
|
|
244
|
-
}, PageParams>, Error>>;
|
|
245
|
-
hasNextPage: boolean;
|
|
246
|
-
hasPreviousPage: boolean;
|
|
247
|
-
isFetchingNextPage: boolean;
|
|
248
|
-
isFetchingPreviousPage: boolean;
|
|
249
|
-
dataUpdatedAt: number;
|
|
250
|
-
errorUpdatedAt: number;
|
|
251
|
-
failureCount: number;
|
|
252
|
-
failureReason: Error | null;
|
|
253
|
-
errorUpdateCount: number;
|
|
254
|
-
isFetched: boolean;
|
|
255
|
-
isFetchedAfterMount: boolean;
|
|
256
|
-
isFetching: boolean;
|
|
257
|
-
isInitialLoading: boolean;
|
|
258
|
-
isPaused: boolean;
|
|
259
|
-
isRefetching: boolean;
|
|
260
|
-
isStale: boolean;
|
|
261
|
-
isEnabled: boolean;
|
|
262
|
-
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
263
|
-
data: IdType[];
|
|
264
|
-
meta: Meta;
|
|
265
|
-
}, PageParams>, Error>>;
|
|
266
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
267
|
-
promise: Promise<import("@tanstack/react-query").InfiniteData<{
|
|
268
|
-
data: IdType[];
|
|
269
|
-
meta: Meta;
|
|
270
|
-
}, PageParams>>;
|
|
271
|
-
} | {
|
|
272
|
-
data: {
|
|
273
|
-
pages: Exclude<Partial<Record<IdType, Type | undefined>>[IdType], undefined>[][];
|
|
274
|
-
pageParams: PageParams[];
|
|
275
|
-
} | undefined;
|
|
276
|
-
error: null;
|
|
277
|
-
isError: false;
|
|
278
|
-
isPending: true;
|
|
279
|
-
isLoadingError: false;
|
|
280
|
-
isRefetchError: false;
|
|
281
|
-
isFetchNextPageError: false;
|
|
282
|
-
isFetchPreviousPageError: false;
|
|
283
|
-
isSuccess: false;
|
|
284
|
-
isPlaceholderData: false;
|
|
285
|
-
status: "pending";
|
|
286
|
-
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
287
|
-
data: IdType[];
|
|
288
|
-
meta: Meta;
|
|
289
|
-
}, PageParams>, Error>>;
|
|
290
|
-
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
291
|
-
data: IdType[];
|
|
292
|
-
meta: Meta;
|
|
293
|
-
}, PageParams>, Error>>;
|
|
294
|
-
hasNextPage: boolean;
|
|
295
|
-
hasPreviousPage: boolean;
|
|
296
|
-
isFetchingNextPage: boolean;
|
|
297
|
-
isFetchingPreviousPage: boolean;
|
|
298
|
-
dataUpdatedAt: number;
|
|
299
|
-
errorUpdatedAt: number;
|
|
300
|
-
failureCount: number;
|
|
301
|
-
failureReason: Error | null;
|
|
302
|
-
errorUpdateCount: number;
|
|
303
|
-
isFetched: boolean;
|
|
304
|
-
isFetchedAfterMount: boolean;
|
|
305
|
-
isFetching: boolean;
|
|
306
|
-
isLoading: boolean;
|
|
307
|
-
isInitialLoading: boolean;
|
|
308
|
-
isPaused: boolean;
|
|
309
|
-
isRefetching: boolean;
|
|
310
|
-
isStale: boolean;
|
|
311
|
-
isEnabled: boolean;
|
|
312
|
-
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
313
|
-
data: IdType[];
|
|
314
|
-
meta: Meta;
|
|
315
|
-
}, PageParams>, Error>>;
|
|
316
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
317
|
-
promise: Promise<import("@tanstack/react-query").InfiniteData<{
|
|
318
|
-
data: IdType[];
|
|
319
|
-
meta: Meta;
|
|
320
|
-
}, PageParams>>;
|
|
321
|
-
} | {
|
|
73
|
+
}>]) => Omit<import("react-query-kit").InfiniteQueryHookResult<import("@tanstack/query-core").InfiniteData<{
|
|
74
|
+
data: IdType[];
|
|
75
|
+
meta: Meta;
|
|
76
|
+
}, PageParams>, Error>, "data"> & {
|
|
322
77
|
data: {
|
|
323
78
|
pages: Exclude<Partial<Record<IdType, Type | undefined>>[IdType], undefined>[][];
|
|
324
79
|
pageParams: PageParams[];
|
|
325
80
|
} | undefined;
|
|
326
|
-
isError: false;
|
|
327
|
-
error: null;
|
|
328
|
-
isPending: false;
|
|
329
|
-
isLoading: false;
|
|
330
|
-
isLoadingError: false;
|
|
331
|
-
isRefetchError: false;
|
|
332
|
-
isSuccess: true;
|
|
333
|
-
isPlaceholderData: true;
|
|
334
|
-
isFetchNextPageError: false;
|
|
335
|
-
isFetchPreviousPageError: false;
|
|
336
|
-
status: "success";
|
|
337
|
-
fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
338
|
-
data: IdType[];
|
|
339
|
-
meta: Meta;
|
|
340
|
-
}, PageParams>, Error>>;
|
|
341
|
-
fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
342
|
-
data: IdType[];
|
|
343
|
-
meta: Meta;
|
|
344
|
-
}, PageParams>, Error>>;
|
|
345
|
-
hasNextPage: boolean;
|
|
346
|
-
hasPreviousPage: boolean;
|
|
347
|
-
isFetchingNextPage: boolean;
|
|
348
|
-
isFetchingPreviousPage: boolean;
|
|
349
|
-
dataUpdatedAt: number;
|
|
350
|
-
errorUpdatedAt: number;
|
|
351
|
-
failureCount: number;
|
|
352
|
-
failureReason: Error | null;
|
|
353
|
-
errorUpdateCount: number;
|
|
354
|
-
isFetched: boolean;
|
|
355
|
-
isFetchedAfterMount: boolean;
|
|
356
|
-
isFetching: boolean;
|
|
357
|
-
isInitialLoading: boolean;
|
|
358
|
-
isPaused: boolean;
|
|
359
|
-
isRefetching: boolean;
|
|
360
|
-
isStale: boolean;
|
|
361
|
-
isEnabled: boolean;
|
|
362
|
-
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<{
|
|
363
|
-
data: IdType[];
|
|
364
|
-
meta: Meta;
|
|
365
|
-
}, PageParams>, Error>>;
|
|
366
|
-
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
367
|
-
promise: Promise<import("@tanstack/react-query").InfiniteData<{
|
|
368
|
-
data: IdType[];
|
|
369
|
-
meta: Meta;
|
|
370
|
-
}, PageParams>>;
|
|
371
81
|
});
|
|
372
82
|
};
|
|
373
83
|
getFilterKey(args: Args, variables?: any[]): readonly unknown[];
|
package/dist/generateQuery.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CreateQueryOptions, QueryHookResult } from 'react-query-kit';
|
|
2
|
-
export declare function generateQuery<Func extends (...args: any[]) => Promise<any> | any, FuncArguments extends Parameters<Func>['length'] extends 0 ? void : Parameters<Func> = Parameters<Func>['length'] extends 0 ? void : Parameters<Func>, FuncReturnType extends Awaited<ReturnType<Func>> = Awaited<ReturnType<Func>>, AdditionalOptionsType extends Omit<CreateQueryOptions<FuncReturnType, FuncArguments>, 'queryKey' | 'fetcher'> = Omit<CreateQueryOptions<FuncReturnType, FuncArguments>, 'queryKey' | 'fetcher'>>(primaryKey: string, queryFn: Func, additionalOptions?: AdditionalOptionsType): import("react-query-kit").ExposeMethods<FuncReturnType, FuncArguments, Error> & (<Arg extends FuncArguments extends void ? [] | [import("react-query-kit").QueryHookOptions<FuncReturnType, Error, unknown, FuncArguments> | undefined] : [import("react-query-kit").QueryHookOptions<FuncReturnType, Error, unknown, FuncArguments> | undefined]>(...options: Arg) => QueryHookResult<Arg extends [{
|
|
2
|
+
export declare function generateQuery<Func extends (...args: any[]) => Promise<any> | any, FuncArguments extends Parameters<Func>['length'] extends 0 ? void : Parameters<Func> = Parameters<Func>['length'] extends 0 ? void : Parameters<Func>, FuncReturnType extends Awaited<ReturnType<Func>> = Awaited<ReturnType<Func>>, AdditionalOptionsType extends Omit<CreateQueryOptions<FuncReturnType, FuncArguments>, 'queryKey' | 'fetcher'> = Omit<CreateQueryOptions<FuncReturnType, FuncArguments>, 'queryKey' | 'fetcher'>>(primaryKey: string, queryFn: Func, additionalOptions?: AdditionalOptionsType): import("react-query-kit").ExposeMethods<FuncReturnType, FuncArguments, Error, never> & (<Arg extends FuncArguments extends void ? [] | [import("react-query-kit").QueryHookOptions<FuncReturnType, Error, unknown, FuncArguments> | undefined] : [import("react-query-kit").QueryHookOptions<FuncReturnType, Error, unknown, FuncArguments> | undefined]>(...options: Arg) => QueryHookResult<Arg extends [{
|
|
3
3
|
select: (...arg: any[]) => any;
|
|
4
4
|
}] ? ReturnType<Arg[0]["select"]> : Arg extends [{
|
|
5
5
|
initialData: FuncReturnType | (() => FuncReturnType);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ExposeMethods } from 'react-query-kit
|
|
2
|
-
export declare function hoistReactQueryKitAttributes<ReturnType, HookArgs, ToFunc extends (...args: any) => any, Error>(from: ExposeMethods<ReturnType, HookArgs, Error>, to: ToFunc): ExposeMethods<ReturnType, HookArgs, Error> & ToFunc;
|
|
1
|
+
import type { ExposeMethods } from 'react-query-kit';
|
|
2
|
+
export declare function hoistReactQueryKitAttributes<ReturnType, HookArgs, ToFunc extends (...args: any[]) => any, Error, PageParam = never>(from: ExposeMethods<ReturnType, HookArgs, Error, PageParam>, to: ToFunc): ExposeMethods<ReturnType, HookArgs, Error, PageParam> & ToFunc;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
export function hoistReactQueryKitAttributes(from, to) {
|
|
2
|
-
const partialHook = to;
|
|
3
|
-
const hoistedOptions = ['fetcher', 'getKey', 'queryKeyHashFn', 'getOptions'];
|
|
4
|
-
for (const name of hoistedOptions) {
|
|
5
|
-
partialHook[name] = from[name];
|
|
6
|
-
}
|
|
2
|
+
const partialHook = Object.assign(to, from);
|
|
7
3
|
return partialHook;
|
|
8
4
|
}
|
|
9
5
|
//# sourceMappingURL=hoistReactQueryKitAttributes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hoistReactQueryKitAttributes.js","sourceRoot":"","sources":["../src/hoistReactQueryKitAttributes.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,
|
|
1
|
+
{"version":3,"file":"hoistReactQueryKitAttributes.js","sourceRoot":"","sources":["../src/hoistReactQueryKitAttributes.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAM1C,IAA2D,EAAE,EAAU;IACrE,MAAM,WAAW,GAA4E,MAAM,CAAC,MAAM,CACtG,EAAE,EACF,IAAI,CACP,CAAC;IAEF,OAAO,WAA6E,CAAC;AACzF,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ArrayHelper, ObjectHelper } from '@ainias42/js-helper';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
export function useArrayData(result) {
|
|
4
|
-
return useMemo(() =>
|
|
4
|
+
return useMemo(() => {
|
|
5
|
+
var _a;
|
|
6
|
+
return ArrayHelper.noUndefined((_a = (Array.isArray(result) ? result : ObjectHelper.values(result !== null && result !== void 0 ? result : {}))) === null || _a === void 0 ? void 0 : _a.map((data) => data.data));
|
|
7
|
+
}, [result]);
|
|
5
8
|
}
|
|
6
9
|
//# sourceMappingURL=useArrayData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useArrayData.js","sourceRoot":"","sources":["../../src/hooks/useArrayData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,MAAM,UAAU,YAAY,CACxB,
|
|
1
|
+
{"version":3,"file":"useArrayData.js","sourceRoot":"","sources":["../../src/hooks/useArrayData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,MAAM,UAAU,YAAY,CACxB,MAKe;IAEf,OAAO,OAAO,CACV,GAAG,EAAE;;QACD,OAAA,WAAW,CAAC,WAAW,CACnB,MAAA,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,0CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CACjG,CAAA;KAAA,EACL,CAAC,MAAM,CAAC,CACX,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ainias42/tanstack-ids",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -27,13 +27,17 @@
|
|
|
27
27
|
"url": "gitea@git.silas.link:Ainias/libraries.git"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@ainias42/react-bootstrap-mobile": "
|
|
31
|
-
"@ainias42/config": "
|
|
32
|
-
"@ainias42/js-helper": ">=0.
|
|
33
|
-
"@tanstack/react-query": "^5.
|
|
34
|
-
"@yornaath/batshit": "^0.
|
|
35
|
-
"react-query-kit": "^3.3.
|
|
36
|
-
"zustand": "^5.0.
|
|
30
|
+
"@ainias42/react-bootstrap-mobile": "1.2.0",
|
|
31
|
+
"@ainias42/config": "1.2.0",
|
|
32
|
+
"@ainias42/js-helper": ">=0.9.0",
|
|
33
|
+
"@tanstack/react-query": "^5.101.0",
|
|
34
|
+
"@yornaath/batshit": "^0.14.0",
|
|
35
|
+
"react-query-kit": "^3.3.4",
|
|
36
|
+
"zustand": "^5.0.14",
|
|
37
|
+
"immer": "^11.1.8"
|
|
38
|
+
},
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"react": "^19.2.7"
|
|
37
41
|
},
|
|
38
42
|
"devDependencies": {}
|
|
39
43
|
}
|
|
@@ -6,7 +6,7 @@ import type { ReactNode } from 'react';
|
|
|
6
6
|
|
|
7
7
|
export type QueriesContextProviderProps = { children: ReactNode };
|
|
8
8
|
|
|
9
|
-
export const QueriesContextProvider = withMemo(function
|
|
9
|
+
export const QueriesContextProvider = withMemo(function QueriesContextProviderComponent({
|
|
10
10
|
children,
|
|
11
11
|
}: QueriesContextProviderProps) {
|
|
12
12
|
// Refs
|
|
@@ -6,7 +6,7 @@ import React, { type ReactNode, useContext } from 'react';
|
|
|
6
6
|
|
|
7
7
|
export type SubQueriesContextProps = { children: ReactNode; subContextId?: number };
|
|
8
8
|
|
|
9
|
-
export const SubQueriesContext = withMemo(function
|
|
9
|
+
export const SubQueriesContext = withMemo(function SubQueriesContextComponent({
|
|
10
10
|
children,
|
|
11
11
|
subContextId,
|
|
12
12
|
}: SubQueriesContextProps) {
|
package/src/generateIdsQuery.ts
CHANGED
|
@@ -10,7 +10,6 @@ import { useMemo, useRef } from 'react';
|
|
|
10
10
|
import { useQueriesSubscribeToReload } from './QueryContext/useQuerySubscribeToReload';
|
|
11
11
|
import type { Awaitable, Override, URecord } from '@ainias42/js-helper';
|
|
12
12
|
import type { CreateInfiniteQueryOptions, CreateQueryOptions, QueryHookOptions } from 'react-query-kit';
|
|
13
|
-
import type { QueriesResults } from '@tanstack/react-query/build/legacy/useQueries';
|
|
14
13
|
import type { QueryClient, QueryFunctionContext, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
15
14
|
|
|
16
15
|
export type Unpacked<T> = T extends (infer U)[] ? U : T;
|
|
@@ -65,9 +64,8 @@ export function generateIdsQuery<
|
|
|
65
64
|
...otherAdditionalQueryOptions,
|
|
66
65
|
}));
|
|
67
66
|
|
|
68
|
-
const results = useQueries
|
|
69
|
-
|
|
70
|
-
queries,
|
|
67
|
+
const results = useQueries({
|
|
68
|
+
queries: queries as any,
|
|
71
69
|
}) as UseQueryResult<Type, Error>[];
|
|
72
70
|
|
|
73
71
|
const oldData = useRef<typeof results>([]);
|
|
@@ -116,9 +114,8 @@ export function generateIdsQuery<
|
|
|
116
114
|
|
|
117
115
|
function generateFilter<
|
|
118
116
|
Func extends (...args: any[]) => Promise<Type[]> | Type[],
|
|
119
|
-
FuncArguments extends Parameters<Func>['length'] extends 0
|
|
120
|
-
? void
|
|
121
|
-
: Parameters<Func> = Parameters<Func>['length'] extends 0 ? void : Parameters<Func>,
|
|
117
|
+
FuncArguments extends Parameters<Func>['length'] extends 0 ? void : Parameters<Func> =
|
|
118
|
+
Parameters<Func>['length'] extends 0 ? void : Parameters<Func>,
|
|
122
119
|
ResultAsArray extends boolean = false,
|
|
123
120
|
>(
|
|
124
121
|
filterFunc: Func,
|
|
@@ -162,11 +159,43 @@ export function generateIdsQuery<
|
|
|
162
159
|
|
|
163
160
|
type QueryHookArgument = Parameters<typeof queryHook>[0];
|
|
164
161
|
type HookArgs = FuncArguments extends void ? [] : FuncArguments;
|
|
162
|
+
type FilterKeyArguments = DeepPartial<HookArgs> | DeepPartial<[FuncArguments]>;
|
|
163
|
+
type FilterGetKey = (variables?: FilterKeyArguments) => readonly unknown[];
|
|
165
164
|
|
|
166
165
|
function useFilter<Args extends HookArgs>(
|
|
167
|
-
|
|
166
|
+
args: Args,
|
|
167
|
+
filterQueryOptions: Omit<
|
|
168
|
+
CreateQueryOptions<Type[], [FuncArguments]>,
|
|
169
|
+
'queryKey' | 'fetcher' | 'variables'
|
|
170
|
+
> = {},
|
|
168
171
|
): ResultAsArray extends true ? UseQueryResult<Type, Error>[] : URecord<IdType, UseQueryResult<Type, Error>> {
|
|
169
|
-
const
|
|
172
|
+
const { initialData, ...otherParams } = filterQueryOptions;
|
|
173
|
+
|
|
174
|
+
let initialDataIds: IdType[] = [];
|
|
175
|
+
if (initialData) {
|
|
176
|
+
const updatedAt =
|
|
177
|
+
(typeof otherParams.initialDataUpdatedAt === 'function'
|
|
178
|
+
? otherParams.initialDataUpdatedAt()
|
|
179
|
+
: otherParams.initialDataUpdatedAt) ?? 0;
|
|
180
|
+
const initialDataArray = Array.isArray(initialData) ? initialData : initialData();
|
|
181
|
+
initialDataIds =
|
|
182
|
+
initialDataArray?.map((item) => {
|
|
183
|
+
const itemKey = useOne.getKey([item.id as DeepPartial<IdType>]);
|
|
184
|
+
const state = queryClient?.getQueryState(itemKey);
|
|
185
|
+
if (!state || state.dataUpdatedAt < updatedAt) {
|
|
186
|
+
queryClient?.setQueryData(itemKey, item, {
|
|
187
|
+
updatedAt,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return item.id;
|
|
191
|
+
}) ?? [];
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const result = queryHook({
|
|
195
|
+
variables: args,
|
|
196
|
+
...otherParams,
|
|
197
|
+
initialData: initialDataIds,
|
|
198
|
+
} as QueryHookArgument);
|
|
170
199
|
|
|
171
200
|
useQueriesSubscribeToReload(
|
|
172
201
|
[hashKey(queryHook.getKey(args as Parameters<(typeof queryHook)['getKey']>[0]))],
|
|
@@ -180,9 +209,10 @@ export function generateIdsQuery<
|
|
|
180
209
|
// Same goes for reloading with context.
|
|
181
210
|
// Other usages of useManyHook are not affected by this.
|
|
182
211
|
const indexedResult = useManyHook(result.data, { staleTime: Infinity, reloadWithContext: false });
|
|
212
|
+
const filteredIds = result.data as IdType[];
|
|
183
213
|
const arrayResult: UseQueryResult<Type, Error>[] = useMemo(
|
|
184
|
-
() => ArrayHelper.noUndefined(
|
|
185
|
-
[
|
|
214
|
+
() => ArrayHelper.noUndefined(filteredIds?.map((id) => indexedResult[id])),
|
|
215
|
+
[filteredIds, indexedResult],
|
|
186
216
|
);
|
|
187
217
|
|
|
188
218
|
if (additionalOptions?.resultAsArray) {
|
|
@@ -195,7 +225,16 @@ export function generateIdsQuery<
|
|
|
195
225
|
: URecord<IdType, UseQueryResult<Type, Error>>;
|
|
196
226
|
}
|
|
197
227
|
|
|
198
|
-
|
|
228
|
+
const filterHook = hoistReactQueryKitAttributes(queryHook, useFilter);
|
|
229
|
+
const getFilterKey: FilterGetKey = (variables) => {
|
|
230
|
+
return queryHook.getKey(variables as Parameters<(typeof queryHook)['getKey']>[0]);
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
return Object.assign(filterHook, {
|
|
234
|
+
getKey: getFilterKey,
|
|
235
|
+
}) as typeof filterHook & {
|
|
236
|
+
getKey: FilterGetKey;
|
|
237
|
+
};
|
|
199
238
|
}
|
|
200
239
|
|
|
201
240
|
function generateInfiniteQuery<PageParams, Meta, FuncArguments extends any[] = []>({
|
|
@@ -388,13 +427,22 @@ export function generateIdsQuery<
|
|
|
388
427
|
: [];
|
|
389
428
|
}, [indexedData, result.data]);
|
|
390
429
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
data:
|
|
430
|
+
const data = !result.data ? undefined : { ...result.data, pages };
|
|
431
|
+
type TransformedResult = Omit<typeof result, 'data'> & {
|
|
432
|
+
data: typeof data;
|
|
394
433
|
};
|
|
434
|
+
|
|
435
|
+
return new Proxy(result, {
|
|
436
|
+
get(target, property, receiver) {
|
|
437
|
+
if (property === 'data') {
|
|
438
|
+
return data;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
return Reflect.get(target, property, receiver);
|
|
442
|
+
},
|
|
443
|
+
}) as TransformedResult;
|
|
395
444
|
}
|
|
396
445
|
|
|
397
|
-
// @ts-expect-error wrong type in tanstack-query
|
|
398
446
|
return hoistReactQueryKitAttributes(infiniteQueryHook, useInfiniteQuery);
|
|
399
447
|
}
|
|
400
448
|
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import type { ExposeMethods } from 'react-query-kit
|
|
1
|
+
import type { ExposeMethods } from 'react-query-kit';
|
|
2
2
|
|
|
3
|
-
export function hoistReactQueryKitAttributes<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
export function hoistReactQueryKitAttributes<
|
|
4
|
+
ReturnType,
|
|
5
|
+
HookArgs,
|
|
6
|
+
ToFunc extends (...args: any[]) => any,
|
|
7
|
+
Error,
|
|
8
|
+
PageParam = never,
|
|
9
|
+
>(from: ExposeMethods<ReturnType, HookArgs, Error, PageParam>, to: ToFunc) {
|
|
10
|
+
const partialHook: Partial<ExposeMethods<ReturnType, HookArgs, Error, PageParam>> & ToFunc = Object.assign(
|
|
11
|
+
to,
|
|
12
|
+
from,
|
|
13
|
+
);
|
|
12
14
|
|
|
13
|
-
return partialHook as ExposeMethods<ReturnType, HookArgs, Error> & ToFunc;
|
|
15
|
+
return partialHook as ExposeMethods<ReturnType, HookArgs, Error, PageParam> & ToFunc;
|
|
14
16
|
}
|