parse-retry-after
Parses an HTTP Retry-After header and returns delay time in seconds.
- If there is no Retry-After header, returns 0
- If there is, returns seconds to delay, rounding up, minimum 1
- If Retry-After header is not an integer or a Date, (should not happen) throws an Error.
Usage (very rough, your code will differ!)
const parse_retry_after = require('parse-retry-after'); // or import...
fetch(URL, init)
.then(function(response) {
// probably want to save response somewhere somehow...
// check response.status
if (mightBeARetry) {
let delaySeconds = parse_retry_after(response);
if (delaySeconds) {
//delay and call fetch again...
}
}
else {
// normal "happy path" code
}
})
Todos
- Currently uses
module.exports
, should probably use ES6export
- see parse-retry-after6.mjs for first pass at an ES6 export.