Skip to content

Latest commit

 

History

History
106 lines (75 loc) · 2.49 KB

README.md

File metadata and controls

106 lines (75 loc) · 2.49 KB

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