15 lines
539 B
JavaScript
15 lines
539 B
JavaScript
/** Classify authoritative rejection separately from temporary server failures.
|
|
* @param {number} status HTTP response status.
|
|
*/
|
|
export function sessionResponseState(status) {
|
|
if (status === 401 || status === 403) return 'revoked';
|
|
return status >= 200 && status < 300 ? 'valid' : 'unavailable';
|
|
}
|
|
|
|
/** Milliseconds before each retry; attempt zero is the immediate first retry.
|
|
* @param {number} attempt Zero-based retry index.
|
|
*/
|
|
export function sessionRetryDelay(attempt) {
|
|
return [0, 3000, 10000, 15000][attempt] ?? 30000;
|
|
}
|