https://github.com/jin5354/axios-cache-plugin
Help you cache GET request when using axios.
https://github.com/jin5354/axios-cache-plugin
Last synced: about 2 months ago
JSON representation
Help you cache GET request when using axios.
- Host: GitHub
- URL: https://github.com/jin5354/axios-cache-plugin
- Owner: jin5354
- License: mit
- Created: 2017-06-23T08:22:02.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-03-24T16:29:55.000Z (about 2 years ago)
- Last Synced: 2025-04-09T22:18:23.340Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 55.7 KB
- Stars: 102
- Watchers: 3
- Forks: 11
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# axios-cache-plugin
[](https://travis-ci.org/jin5354/axios-cache-plugin)
[](https://coveralls.io/github/jin5354/axios-cache-plugin?branch=master)
[](https://www.npmjs.org/package/axios-cache-plugin)
[](https://www.npmjs.org/package/axios-cache-plugin)
[](https://opensource.org/licenses/MIT)Help you cache GET request when using axios.
## Install
```bash
npm install axios-cache-plugin --save
```
or
```bash
yarn add axios-cache-plugin
```## Usage
Add cache feature to axios
```javascript
import axios from 'axios'
import wrapper from 'axios-cache-plugin'let http = wrapper(axios, {
maxCacheSize: 15
})
export default http
```or axios instance
```javascript
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:
```javascript
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.
```javascript
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