• Stars
    star
    102
  • Rank 335,584 (Top 7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Help you cache GET request when using axios.

axios-cache-plugin

Build Status Coverage Status npm package npm downloads License: MIT

Help you cache GET request when using axios.

Install

npm install axios-cache-plugin --save

or

yarn add axios-cache-plugin

Usage

Add cache feature to axios

import axios from 'axios'
import wrapper from 'axios-cache-plugin'

let http = wrapper(axios, {
  maxCacheSize: 15
})
export default http

or axios instance

import axios from 'axios'
import wrapper from 'axios-cache-plugin'

let http = axios.create({
  withCredentials: false
})

let httpProxy = wrapper(http, {
  maxCacheSize: 15
})
export default httpProxy

API

By default, axios-cache-plugin won't cache any GET request unless you add filters.

Filters are Regexps, only the GET request whose url hit the filter reg will be cached.

instance.__addFilter(reg)

example:

import axios from 'axios'
import wrapper from 'axios-cache-plugin'

let http = wrapper(axios, {
  maxCacheSize: 15
})
http.__addFilter(/getItemInfoByIdsWithSecKill/)

http({
  url: 'http://example.com/item/getItemInfoByIdsWithSecKill',
  method: 'get',
  params: {
    param: JSON.stringify({
      debug_port: 'sandbox1'
    })
  }
})

// now the request http://example.com/item/getItemInfoByIdsWithSecKill?param=%7B%22debug_port%22:%22sandbox1%22%7D has been cached

instance.__removeFilter(reg)

Remove filter.

instance.__clearCache()

Clear cache.

wrapper options

Options are optional.

let http = wrapper(axios, {
  maxCacheSize: 15,  // cached items amounts. if the number of cached items exceeds, the earliest cached item will be deleted. default number is 15.
  ttl: 60000, // time to live. if you set this option the cached item will be auto deleted after ttl(ms).
  excludeHeaders: true // should headers be ignored in cache key, helpful for ignoring tracking headers
})

LICENSE

MIT