@@ -11,24 +11,22 @@ import { useQueryLogger } from '../query-logger';
1111// eslint-disable-next-line @typescript-eslint/no-explicit-any
1212export type ArgumentsType < T > = T extends ( ...args : infer U ) => any ? U : never ;
1313
14+ export type StreamItemType < T > = T extends (
15+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16+ ...args : any [ ]
17+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18+ ) => AsyncGenerator < infer R , any , any >
19+ ? R
20+ : never ;
21+
1422interface QueryOptions {
1523 // enabled defaults to true if unspecified
1624 enabled ?: boolean ;
1725 refetchMode ?: 'append' | 'reset' | 'replace' ;
1826 maxChunks ?: number ;
1927}
2028
21- export type ResolvedReturnType < T > = T extends (
22- // eslint-disable-next-line @typescript-eslint/no-explicit-any
23- ...args : any [ ]
24- ) => infer R
25- ? R
26- : never ;
27-
28- type QueryResult < T extends Resource , K extends keyof T > = QueryObserverResult <
29- ResolvedReturnType < T [ K ] > [ ] ,
30- Error
31- > ;
29+ type QueryResult < U > = QueryObserverResult < U [ ] , Error > ;
3230
3331export const createResourceStream = < T extends Resource , K extends keyof T > (
3432 client : { current : T | undefined } ,
@@ -39,7 +37,7 @@ export const createResourceStream = <T extends Resource, K extends keyof T>(
3937 options ?: ( ( ) => QueryOptions ) | QueryOptions ,
4038 ]
4139 | [ options ?: ( ( ) => QueryOptions ) | QueryOptions ]
42- ) : { current : QueryResult < T , K > } => {
40+ ) : { current : QueryResult < StreamItemType < T [ K ] > > } => {
4341 const debug = useQueryLogger ( ) ;
4442
4543 let [ args , options ] = additional ;
@@ -66,7 +64,6 @@ export const createResourceStream = <T extends Resource, K extends keyof T>(
6664 ...( _args ? [ _args ] : [ ] ) ,
6765 ] ) ;
6866
69- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type, @typescript-eslint/no-explicit-any
7067 function processStream ( ) {
7168 const clientFunc = client . current ?. [ method ] ;
7269
@@ -83,15 +80,11 @@ export const createResourceStream = <T extends Resource, K extends keyof T>(
8380 const response = clientFunc ?. apply (
8481 client . current ,
8582 _args
86- ) as AsyncGenerator < ResolvedReturnType < T [ K ] > > ;
83+ ) as AsyncGenerator < StreamItemType < T [ K ] > > ;
8784 console . log ( 'response' , typeof response ) ;
8885
8986 logger ( 'RES' , name , methodName , response ) ;
90- return {
91- async * [ Symbol . asyncIterator ] ( ) {
92- yield * response ;
93- } ,
94- } ;
87+ return response ;
9588 } catch ( error ) {
9689 logger ( 'ERR' , name , methodName , error ) ;
9790 throw error ;
@@ -102,7 +95,7 @@ export const createResourceStream = <T extends Resource, K extends keyof T>(
10295 createQueryOptions ( {
10396 queryKey,
10497 enabled : client . current !== undefined && _options ?. enabled !== false ,
105- queryFn : streamedQuery < ResolvedReturnType < T [ K ] > > ( {
98+ queryFn : streamedQuery < StreamItemType < T [ K ] > > ( {
10699 queryFn : processStream ,
107100 ..._options ,
108101 } ) ,
0 commit comments