Simple fetch cache.
See test.js for use cases.
- Install the package
- Run tests
npm install
node test.jsconst { fetch, options } = require('./fetch-cache/index.js');
// set timeout 2 sec
options.cache_timeout = 2000;
const foo = await fetch('https://github.com');
const bar = await fetch('https://github.com'); // cached responsefetch(url, options)- setup timeout withfetch_timeoutand callcache(fetch_upstream, url, wrap_options(options)).cache(fetch, url, options)- check ifurlis cached and return the cached response, or callfetchotherwise and cache the response.- If
request_filter(url, options)returnsfalse, just callfetchand return the response. - If
response_filter(response)returnsfalse, don't cache the response.
- If
clear()- clear the cache.
fetch_upstream- upstreamfetchfunction. Default isrequire('node-fetch').fetch_timeout- fetch timeout in milliseconds. Default is10000.cache_timeout- cache timeout in milliseconds. Default is5000.request_filter- request filter function. By default, onlyGETrequest responses are cached.response_filter- response filter function. By default, only responses with status200OK are cached.wrap_options- wrap request options function. By default, don't change request options.autoclean_count- how many cache responses to check for timeout whencacheis called. Default is20.
btcBitcoinbc1qau5y9wf49ammclhscuelwlm6370d9lqph6g9umbtcBitcoin (Legacy)369h9iMSq8ihjYMwdwhbn2ffXMrprHvxavethEthereum0x98556fb56e3079696738579dBE70a5Fa761110b9