@@ -17,6 +17,7 @@ import {
1717 isEntity ,
1818 denormalize ,
1919 validateQueryKey ,
20+ INVALID ,
2021} from '@data-client/normalizr' ;
2122
2223import AbortOptimistic from './AbortOptimistic.js' ;
@@ -50,7 +51,10 @@ export interface ControllerConstructorProps<
5051> {
5152 dispatch ?: D ;
5253 getState ?: ( ) => State < unknown > ;
53- memo ?: Pick < MemoCache , 'denormalize' | 'query' | 'buildQueryKey' > ;
54+ memo ?: Pick <
55+ MemoCache ,
56+ 'denormalize' | 'query' | 'buildQueryKey' | 'isInvalid'
57+ > ;
5458 gcPolicy ?: GCInterface ;
5559}
5660
@@ -93,7 +97,7 @@ export default class Controller<
9397 */
9498 declare readonly memo : Pick <
9599 MemoCache ,
96- 'denormalize' | 'query' | 'buildQueryKey'
100+ 'denormalize' | 'query' | 'buildQueryKey' | 'isInvalid'
97101 > ;
98102
99103 /**
@@ -563,7 +567,7 @@ export default class Controller<
563567 return {
564568 data,
565569 expiryStatus : this . getExpiryStatus (
566- typeof data === 'symbol' ,
570+ this . memo . isInvalid ( data ) ,
567571 ! ! endpoint . invalidIfStale || isInvalid ,
568572 meta ,
569573 ) ,
@@ -590,7 +594,7 @@ export default class Controller<
590594 . map ( ensurePojo ) as SchemaArgs < S > ;
591595
592596 const { data } = this . memo . query ( schema , args , state ) ;
593- return typeof data === 'symbol' ? undefined : data ;
597+ return this . memo . isInvalid ( data ) ? undefined : data ;
594598 }
595599
596600 /**
@@ -616,7 +620,7 @@ export default class Controller<
616620 const { data, paths } = this . memo . query ( schema , args , state ) ;
617621
618622 return {
619- data : typeof data === 'symbol' ? undefined : data ,
623+ data : this . memo . isInvalid ( data ) ? undefined : data ,
620624 countRef : this . gcPolicy . createCountRef ( { paths } ) ,
621625 } ;
622626 }
0 commit comments