@ainias42/tanstack-ids 0.0.6 → 0.1.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.
@@ -3,21 +3,21 @@ 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>(...args: Args_1) => ResultAsArray extends true ? import("@tanstack/react-query").UseQueryResult<Type, Error>[] : Partial<Record<IdType, import("@tanstack/react-query").UseQueryResult<Type, Error> | undefined>>);
15
+ }) | undefined) => import("react-query-kit").ExposeMethods<IdType[], void | (void & [filter: FuncArguments]), Error, never> & (<Args_1 extends FuncArguments extends void ? [] : FuncArguments>(...args: Args_1) => ResultAsArray extends true ? import("@tanstack/react-query").UseQueryResult<Type, Error>[] : Partial<Record<IdType, import("@tanstack/react-query").UseQueryResult<Type, Error> | undefined>>);
16
16
  generateInfiniteQuery: <PageParams, Meta, FuncArguments extends any[] = []>({ queryFn, ...options }: Omit<import("react-query-kit").CreateInfiniteQueryOptions<{
17
17
  data: IdType[];
18
18
  meta: Meta;
19
19
  }, FuncArguments, Error, PageParams>, "queryKey" | "fetcher" | "getNextPageParam" | "getPreviousPageParam"> & {
20
- queryFn: (pageParams: PageParams, args: FuncArguments, context: import("@tanstack/react-query").QueryFunctionContext<[string, FuncArguments], PageParams>) => import("@ainias42/js-helper").Awaitable<{
20
+ queryFn: (pageParams: PageParams, args: FuncArguments, context: import("@tanstack/query-core").QueryFunctionContext<[string, FuncArguments], PageParams>) => import("@ainias42/js-helper").Awaitable<{
21
21
  data: Type[];
22
22
  meta: Meta;
23
23
  }>;
@@ -40,7 +40,7 @@ export declare function generateNestedIdQuery<IdType extends number | string | s
40
40
  }) => import("react-query-kit").ExposeMethods<{
41
41
  data: IdType[];
42
42
  meta: Meta;
43
- }, FuncArguments, Error> & ((...args: FuncArguments extends symbol | {
43
+ }, FuncArguments, Error, PageParams> & ((...args: FuncArguments extends symbol | {
44
44
  length: 0;
45
45
  } | undefined ? [] | [import("@ainias42/js-helper").Override<import("react-query-kit").InfiniteQueryHookOptions<{
46
46
  data: IdType[];
@@ -68,306 +68,14 @@ export declare function generateNestedIdQuery<IdType extends number | string | s
68
68
  }[];
69
69
  pageParams: PageParams[];
70
70
  } | undefined;
71
- }>]) => {
72
- data: {
73
- pages: Exclude<Partial<Record<IdType, Type | undefined>>[IdType], undefined>[][];
74
- pageParams: PageParams[];
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
- } | {
71
+ }>]) => Omit<import("react-query-kit").InfiniteQueryHookResult<import("@tanstack/query-core").InfiniteData<{
72
+ data: IdType[];
73
+ meta: Meta;
74
+ }, PageParams>, Error>, "data"> & {
322
75
  data: {
323
76
  pages: Exclude<Partial<Record<IdType, Type | undefined>>[IdType], undefined>[][];
324
77
  pageParams: PageParams[];
325
78
  } | 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
79
  });
372
80
  };
373
81
  getFilterKey(args: Args, variables?: any[]): readonly unknown[];
@@ -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/build/lib/types';
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,CACxC,IAAgD,EAChD,EAAU;IAEV,MAAM,WAAW,GAAiE,EAAE,CAAC;IACrF,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,CAAU,CAAC;IACtF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAChC,WAAW,CAAC,IAAgB,CAAC,GAAG,IAAI,CAAC,IAAgB,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,WAAkE,CAAC;AAC9E,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ainias42/tanstack-ids",
3
- "version": "0.0.6",
3
+ "version": "0.1.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -27,13 +27,16 @@
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.8.19",
33
- "@tanstack/react-query": "^5.85.5",
34
- "@yornaath/batshit": "^0.10.1",
35
- "react-query-kit": "^3.3.2",
36
- "zustand": "^5.0.8"
30
+ "@ainias42/react-bootstrap-mobile": "1.1.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
+ },
38
+ "peerDependencies": {
39
+ "react": "^19.2.7"
37
40
  },
38
41
  "devDependencies": {}
39
42
  }
@@ -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 QueriesContextProvider({
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 SubQueriesContext({
9
+ export const SubQueriesContext = withMemo(function SubQueriesContextComponent({
10
10
  children,
11
11
  subContextId,
12
12
  }: SubQueriesContextProps) {
@@ -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<Type[], QueriesResults<Type[]>>({
69
- // @ts-expect-error wrong type in tanstack-query
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,
@@ -180,9 +177,10 @@ export function generateIdsQuery<
180
177
  // Same goes for reloading with context.
181
178
  // Other usages of useManyHook are not affected by this.
182
179
  const indexedResult = useManyHook(result.data, { staleTime: Infinity, reloadWithContext: false });
180
+ const filteredIds = result.data as IdType[];
183
181
  const arrayResult: UseQueryResult<Type, Error>[] = useMemo(
184
- () => ArrayHelper.noUndefined(result.data.map((id) => indexedResult[id])),
185
- [indexedResult, result.data],
182
+ () => ArrayHelper.noUndefined(filteredIds.map((id) => indexedResult[id])),
183
+ [filteredIds, indexedResult],
186
184
  );
187
185
 
188
186
  if (additionalOptions?.resultAsArray) {
@@ -388,13 +386,22 @@ export function generateIdsQuery<
388
386
  : [];
389
387
  }, [indexedData, result.data]);
390
388
 
391
- return {
392
- ...result,
393
- data: !result.data ? undefined : { ...result.data, pages },
389
+ const data = !result.data ? undefined : { ...result.data, pages };
390
+ type TransformedResult = Omit<typeof result, 'data'> & {
391
+ data: typeof data;
394
392
  };
393
+
394
+ return new Proxy(result, {
395
+ get(target, property, receiver) {
396
+ if (property === 'data') {
397
+ return data;
398
+ }
399
+
400
+ return Reflect.get(target, property, receiver);
401
+ },
402
+ }) as TransformedResult;
395
403
  }
396
404
 
397
- // @ts-expect-error wrong type in tanstack-query
398
405
  return hoistReactQueryKitAttributes(infiniteQueryHook, useInfiniteQuery);
399
406
  }
400
407
 
@@ -1,14 +1,16 @@
1
- import type { ExposeMethods } from 'react-query-kit/build/lib/types';
1
+ import type { ExposeMethods } from 'react-query-kit';
2
2
 
3
- export function hoistReactQueryKitAttributes<ReturnType, HookArgs, ToFunc extends (...args: any) => any, Error>(
4
- from: ExposeMethods<ReturnType, HookArgs, Error>,
5
- to: ToFunc,
6
- ) {
7
- const partialHook: Partial<ExposeMethods<ReturnType, HookArgs, Error>> & ToFunc = to;
8
- const hoistedOptions = ['fetcher', 'getKey', 'queryKeyHashFn', 'getOptions'] as const;
9
- for (const name of hoistedOptions) {
10
- partialHook[name as 'getKey'] = from[name as 'getKey'];
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
  }
package/tsconfig.json CHANGED
@@ -2,6 +2,7 @@
2
2
  "extends": "@ainias42/config/tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "jsx": "react",
5
+ "rootDir": "./src",
5
6
  "outDir": "./dist",
6
7
  "declaration": true
7
8
  },