mirror of
https://github.com/tvytlx/ai-agent-deep-dive.git
synced 2026-04-07 17:44:48 +08:00
Add extracted source directory and README navigation
This commit is contained in:
40
extracted-source/node_modules/@azure/msal-node/dist/retry/ExponentialRetryStrategy.mjs
generated
vendored
Normal file
40
extracted-source/node_modules/@azure/msal-node/dist/retry/ExponentialRetryStrategy.mjs
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
/*! @azure/msal-node v3.8.1 2025-10-29 */
|
||||
'use strict';
|
||||
/*
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License.
|
||||
*/
|
||||
class ExponentialRetryStrategy {
|
||||
constructor(minExponentialBackoff, maxExponentialBackoff, exponentialDeltaBackoff) {
|
||||
this.minExponentialBackoff = minExponentialBackoff;
|
||||
this.maxExponentialBackoff = maxExponentialBackoff;
|
||||
this.exponentialDeltaBackoff = exponentialDeltaBackoff;
|
||||
}
|
||||
/**
|
||||
* Calculates the exponential delay based on the current retry attempt.
|
||||
*
|
||||
* @param {number} currentRetry - The current retry attempt number.
|
||||
* @returns {number} - The calculated exponential delay in milliseconds.
|
||||
*
|
||||
* The delay is calculated using the formula:
|
||||
* - If `currentRetry` is 0, it returns the minimum backoff time.
|
||||
* - Otherwise, it calculates the delay as the minimum of:
|
||||
* - `(2^(currentRetry - 1)) * deltaBackoff`
|
||||
* - `maxBackoff`
|
||||
*
|
||||
* This ensures that the delay increases exponentially with each retry attempt,
|
||||
* but does not exceed the maximum backoff time.
|
||||
*/
|
||||
calculateDelay(currentRetry) {
|
||||
// Attempt 1
|
||||
if (currentRetry === 0) {
|
||||
return this.minExponentialBackoff;
|
||||
}
|
||||
// Attempt 2+
|
||||
const exponentialDelay = Math.min(Math.pow(2, currentRetry - 1) * this.exponentialDeltaBackoff, this.maxExponentialBackoff);
|
||||
return exponentialDelay;
|
||||
}
|
||||
}
|
||||
|
||||
export { ExponentialRetryStrategy };
|
||||
//# sourceMappingURL=ExponentialRetryStrategy.mjs.map
|
||||
Reference in New Issue
Block a user