Neutral Pork Motel

    axios-retry-after

    2.0.0 • Public • Published

    axios-retry-after

    Build Status Download Status Sponsor on GitHub

    A tiny HTTP retry interceptor for axios.

    This interceptor catches HTTP 429 errors, reads the Retry-After header, and retries the request at the proper type.

    Installation

    With NPM:

    npm install --save axios-retry-after

    With Yarn:

    yarn add axios-retry-after

    Example usage

    import axios from 'axios'
    import retry from 'axios-retry-after'
    const client = axios.createClient()
    client.interceptors.response.use(null, retry(client))

    Customizing retry behavior

    You can optionally customize the behavior of this interceptor by passing a second argument including one or more of the methods demonstrated below:

    client.interceptors.response.use(null, retry(client, {
      // Determine when we should attempt to retry
      isRetryable (error) {
        return (
          error.response && error.response.status === 429 &&
          // Use X-Retry-After rather than Retry-After, and cap retry delay at 60 seconds
          error.response.headers['x-retry-after'] && error.response.headers['x-retry-after'] <= 60
        )
      }
    
      // Customize the wait behavior
      wait (error) {
        return new Promise(
          // Use X-Retry-After rather than Retry-After 
          resolve => setTimeout(resolve, error.response.headers['x-retry-after'])
        )
      }
    
      // Customize the retry request itself
      retry (axios, error) {
        if (!error.config) {
          throw error
        }
    
        // Apply request customizations before retrying
        // ...
    
        return axios(error.config)
      }
    }))

    Install

    npm i axios-retry-after

    DownloadsWeekly Downloads

    92

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    5.62 kB

    Total Files

    5

    Last publish

    Collaborators

    • compwright