@@ -22,12 +22,27 @@ export type StreamItemType<T> = T extends (
2222interface QueryOptions {
2323 // enabled defaults to true if unspecified
2424 enabled ?: boolean ;
25+ // refetchMode defaults to 'reset' if unspecified
2526 refetchMode ?: 'append' | 'reset' | 'replace' ;
26- maxChunks ?: number ;
2727}
2828
2929type QueryResult < U > = QueryObserverResult < U [ ] , Error > ;
3030
31+ export const streamQueryKey = (
32+ partID : string ,
33+ name : string | undefined ,
34+ methodName : string ,
35+ args ?: QueryOptions | unknown
36+ ) => [
37+ 'viam-svelte-sdk' ,
38+ 'partID' ,
39+ partID ,
40+ 'resource' ,
41+ name ,
42+ methodName ,
43+ ...( args ? [ args ] : [ ] ) ,
44+ ] ;
45+
3146export const createResourceStream = < T extends Resource , K extends keyof T > (
3247 client : { current : T | undefined } ,
3348 method : K ,
@@ -54,15 +69,9 @@ export const createResourceStream = <T extends Resource, K extends keyof T>(
5469 const _args = $derived ( typeof args === 'function' ? args ( ) : args ) ;
5570 const name = $derived ( client . current ?. name ) ;
5671 const methodName = $derived ( String ( method ) ) ;
57- const queryKey = $derived ( [
58- 'viam-svelte-sdk' ,
59- 'partID' ,
60- ( client . current as T & { partID : string } ) ?. partID ,
61- 'resource' ,
62- name ,
63- methodName ,
64- ...( _args ? [ _args ] : [ ] ) ,
65- ] ) ;
72+ const refetchMode = $derived ( _options ?. refetchMode ?? 'reset' ) ;
73+ const partID = $derived ( ( client . current as T & { partID : string } ) ?. partID ) ;
74+ const queryKey = $derived ( streamQueryKey ( partID , name , methodName , _args ) ) ;
6675
6776 function processStream ( ) {
6877 const clientFunc = client . current ?. [ method ] ;
@@ -97,7 +106,7 @@ export const createResourceStream = <T extends Resource, K extends keyof T>(
97106 enabled : client . current !== undefined && _options ?. enabled !== false ,
98107 queryFn : streamedQuery < StreamItemType < T [ K ] > > ( {
99108 streamFn : processStream ,
100- ... _options ,
109+ refetchMode ,
101110 } ) ,
102111 } )
103112 ) ;
0 commit comments