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 nextnumber
repeatAfter? of milliseconds to wait befor next trymessage
string to reportdone
boolean op is finished returnresponse
Responsepostprocess
boolean exec postprocess
RequestReporter
Function to provide progress report.
Type: Function
Properties
url
String to be requestedmethod
String http method namestatus
(String | Error) result of the last requestnthTry
number how often have we retried
wait
Parameters
stateActionHandler
Executes fetch operation and handles response.
Parameters
-
fetch
Function executes the fetch operation -
options
Objectoptions.reporter
RequestReporteroptions.postprocess
Functionoptions.stateActions
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