UNPKG

undici-retry

Version:

Library for handling retry logic with undici HTTP client

37 lines 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveDelayTime = resolveDelayTime; const DIGITS_ONLY_REGEX = /^\d+$/; function resolveDelayTime(headers, maxDelay = 60000) { const retryAfter = headers['retry-after']; if (!retryAfter) { return { error: 'header_not_set', }; } let resolvedDelay; // parse as number if (retryAfter.match(DIGITS_ONLY_REGEX)) { resolvedDelay = Number.parseInt(retryAfter) * 1000; } // parse as date else { const date = new Date(retryAfter); if (!isNaN(date.getTime())) { resolvedDelay = date.getTime() - Date.now(); } } if (resolvedDelay) { return resolvedDelay <= maxDelay ? { result: resolvedDelay, } : { error: 'max_delay_exceeded', }; } return { error: 'unknown_format', }; } //# sourceMappingURL=retryAfterResolver.js.map