fetch-rate-limit-util
Handle fetch errors and rate limits and caching.
Waits and retry after rate limit rest time has reached.
import { stateActionHandler } from "fetch-rate-limit-util";
const response = await stateActionHandler(fetch, someURL);
API
Table of Contents
- HandlerResult
- RequestReporter
- wait
- stateActionHandler
- rateLimitHandler
- retryTimes
- retryHandler
- defaultHandler
- errorHandler
- cacheHandler
- DEFAULT_MIN_WAIT_MSECS
- DEFAULT_MAX_RETRIES
HandlerResult
Type: Object
Properties
-
url
URL? what to fetch next -
number
repeatAfter? of milliseconds to wait befor next try -
message
string to report -
done
boolean op is finished return -
response
Response -
postprocess
boolean exec postprocess
RequestReporter
Function to provide progress report.
Type: Function
Properties
-
url
String to be requested -
method
String http method name -
status
(String | Error) result of the last request -
nthTry
number how often have we retried
wait
Parameters
stateActionHandler
Executes fetch operation and handles response.
Parameters
-
options
Object
Returns Promise<Response> from fetch
rateLimitHandler
- See: https://auth0.com/docs/policies/rate-limit-policy
- See: https://developer.github.com/v3/#rate-limiting
- See: https://opensource.zalando.com/restful-api-guidelines/#153
Waits and retries after rate limit reset time has reached.
Parameters
Returns HandlerResult
retryTimes
Retry timeouts with increasing delay for each retry. Values in msecs.
retryHandler
Try several times with a increasing delay.
Parameters
Returns HandlerResult
defaultHandler
Postprocessing if response is ok.
Parameters
Returns HandlerResult
errorHandler
No postprocessing.
Parameters
Returns HandlerResult
cacheHandler
Provide cached data.
Parameters
Returns HandlerResult
DEFAULT_MIN_WAIT_MSECS
Minimum wait time in msecs.
Type: number
DEFAULT_MAX_RETRIES
Max # of retries.
Type: number
install
With npm do:
npm install fetch-rate-limit-util
license
BSD-2-Clause