File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -34,6 +34,8 @@ export default function cache<T>(
3434 if ( newValue === undefined ) {
3535 return ;
3636 }
37+ logger ?. info ( "refreshed features" ) ;
38+
3739 cachedValue = newValue ;
3840
3941 lastUpdate = Date . now ( ) ;
@@ -63,7 +65,6 @@ export default function cache<T>(
6365 refreshPromise = update ( ) ;
6466 }
6567 await refreshPromise ;
66- logger ?. info ( "refreshed cached features" ) ;
6768 return get ( ) ;
6869 } ;
6970
Original file line number Diff line number Diff line change @@ -675,7 +675,7 @@ export class BucketClient {
675675 if ( ! response . ok || ! isObject ( response . body ) || ! response . body . success ) {
676676 this . logger . warn (
677677 `invalid response received from server for "${ url } "` ,
678- response ,
678+ JSON . stringify ( response ) ,
679679 ) ;
680680 return false ;
681681 }
@@ -713,15 +713,16 @@ export class BucketClient {
713713 ! isObject ( response . body ) ||
714714 ! response . body . success
715715 ) {
716- this . logger . warn (
717- `invalid response received from server for "${ url } "` ,
718- response ,
716+ throw new Error (
717+ `invalid response received from server for "${ url } ": ${ JSON . stringify ( response . body ) } ` ,
719718 ) ;
720- return undefined ;
721719 }
722720 const { success : _ , ...result } = response . body ;
723721 return result as TResponse ;
724722 } ,
723+ ( ) => {
724+ this . logger . warn ( "failed to fetch features, will retry" ) ;
725+ } ,
725726 retries ,
726727 1000 ,
727728 10000 ,
Original file line number Diff line number Diff line change @@ -67,6 +67,7 @@ const fetchClient: HttpClient = {
6767 */
6868export async function withRetry < T > (
6969 fn : ( ) => Promise < T > ,
70+ onFailedTry : ( ) => void ,
7071 maxRetries : number ,
7172 baseDelay : number ,
7273 maxDelay : number ,
@@ -83,13 +84,15 @@ export async function withRetry<T>(
8384 break ;
8485 }
8586
87+ onFailedTry ( ) ;
88+
8689 // Calculate exponential backoff with jitter
8790 const delay = Math . min (
8891 maxDelay ,
8992 baseDelay * Math . pow ( 2 , attempt ) * ( 0.8 + Math . random ( ) * 0.4 ) ,
9093 ) ;
9194
92- await new Promise ( ( resolve ) => setTimeout ( resolve , delay ) . unref ( ) ) ;
95+ await new Promise ( ( resolve ) => setTimeout ( resolve , delay ) ) ;
9396 }
9497 }
9598
You can’t perform that action at this time.
0 commit comments