mirror of
https://github.com/tvytlx/ai-agent-deep-dive.git
synced 2026-04-05 00:24:50 +08:00
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
/*! @azure/msal-node v3.8.1 2025-10-29 */
|
|
'use strict';
|
|
/*
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License.
|
|
*/
|
|
class LinearRetryStrategy {
|
|
/**
|
|
* Calculates the number of milliseconds to sleep based on the `retry-after` HTTP header.
|
|
*
|
|
* @param retryHeader - The value of the `retry-after` HTTP header. This can be either a number of seconds
|
|
* or an HTTP date string.
|
|
* @returns The number of milliseconds to sleep before retrying the request. If the `retry-after` header is not
|
|
* present or cannot be parsed, returns 0.
|
|
*/
|
|
calculateDelay(retryHeader, minimumDelay) {
|
|
if (!retryHeader) {
|
|
return minimumDelay;
|
|
}
|
|
// retry-after header is in seconds
|
|
let millisToSleep = Math.round(parseFloat(retryHeader) * 1000);
|
|
/*
|
|
* retry-after header is in HTTP Date format
|
|
* <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
|
|
*/
|
|
if (isNaN(millisToSleep)) {
|
|
// .valueOf() is needed to subtract dates in TypeScript
|
|
millisToSleep =
|
|
new Date(retryHeader).valueOf() - new Date().valueOf();
|
|
}
|
|
return Math.max(minimumDelay, millisToSleep);
|
|
}
|
|
}
|
|
|
|
export { LinearRetryStrategy };
|
|
//# sourceMappingURL=LinearRetryStrategy.mjs.map
|