axios-cache-plugin

Help you cache GET request when using axios.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
axios-cache-plugin
9870.1.05 years ago6 years agoMinified + gzip package size for axios-cache-plugin in KB

Readme

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