44import { AppConfigurationClient , AppConfigurationClientOptions } from "@azure/app-configuration" ;
55import { ConfigurationClientWrapper } from "./ConfigurationClientWrapper.js" ;
66import { TokenCredential } from "@azure/identity" ;
7- import { AzureAppConfigurationOptions , MaxRetries , MaxRetryDelayInMs } from "./AzureAppConfigurationOptions.js" ;
7+ import { AzureAppConfigurationOptions } from "./AzureAppConfigurationOptions.js" ;
88import { isBrowser , isWebWorker } from "./requestTracing/utils.js" ;
99import * as RequestTracing from "./requestTracing/constants.js" ;
1010import { shuffleList } from "./common/utils.js" ;
1111
12+ // Configuration client retry options
13+ const CLIENT_MAX_RETRIES = 2 ;
14+ const CLIENT_MAX_RETRY_DELAY = 60_000 ; // 1 minute in milliseconds
15+
1216const TCP_ORIGIN_KEY_NAME = "_origin._tcp" ;
1317const ALT_KEY_NAME = "_alt" ;
1418const TCP_KEY_NAME = "_tcp" ;
@@ -17,8 +21,8 @@ const ID_KEY_NAME = "Id";
1721const SECRET_KEY_NAME = "Secret" ;
1822const TRUSTED_DOMAIN_LABELS = [ ".azconfig." , ".appconfig." ] ;
1923const FALLBACK_CLIENT_REFRESH_EXPIRE_INTERVAL = 60 * 60 * 1000 ; // 1 hour in milliseconds
20- const MINIMAL_CLIENT_REFRESH_INTERVAL = 30 * 1000 ; // 30 seconds in milliseconds
21- const SRV_QUERY_TIMEOUT = 30 * 1000 ; // 30 seconds in milliseconds
24+ const MINIMAL_CLIENT_REFRESH_INTERVAL = 30_000 ; // 30 seconds in milliseconds
25+ const SRV_QUERY_TIMEOUT = 30_000 ; // 30 seconds in milliseconds
2226
2327export class ConfigurationClientManager {
2428 #isFailoverable: boolean ;
@@ -143,16 +147,16 @@ export class ConfigurationClientManager {
143147
144148 async #discoverFallbackClients( host : string ) {
145149 let result ;
146- let timeout ;
150+ let timer ;
147151 try {
148152 result = await Promise . race ( [
149- new Promise ( ( _ , reject ) => timeout = setTimeout ( ( ) => reject ( new Error ( "SRV record query timed out." ) ) , SRV_QUERY_TIMEOUT ) ) ,
153+ new Promise ( ( _ , reject ) => timer = setTimeout ( ( ) => reject ( new Error ( "SRV record query timed out." ) ) , SRV_QUERY_TIMEOUT ) ) ,
150154 this . #querySrvTargetHost( host )
151155 ] ) ;
152156 } catch ( error ) {
153- throw new Error ( `Failed to build fallback clients, ${ error . message } ` ) ;
157+ throw new Error ( `Failed to build fallback clients: ${ error . message } ` ) ;
154158 } finally {
155- clearTimeout ( timeout ) ;
159+ clearTimeout ( timer ) ;
156160 }
157161
158162 const srvTargetHosts = shuffleList ( result ) as string [ ] ;
@@ -269,8 +273,8 @@ function getClientOptions(options?: AzureAppConfigurationOptions): AppConfigurat
269273
270274 // retry options
271275 const defaultRetryOptions = {
272- maxRetries : MaxRetries ,
273- maxRetryDelayInMs : MaxRetryDelayInMs ,
276+ maxRetries : CLIENT_MAX_RETRIES ,
277+ maxRetryDelayInMs : CLIENT_MAX_RETRY_DELAY ,
274278 } ;
275279 const retryOptions = Object . assign ( { } , defaultRetryOptions , options ?. clientOptions ?. retryOptions ) ;
276280
0 commit comments