fetch-unless-cached
Store fetch JSON responses in localStorage with expire timers! And fetch only if the timer has expired.
What is it really?
- A wrapper on top isomorphic-fetch for JSON responses
- When data is fetched, it's stored in localStorage with an expire timer
- When data is reqeusted, it checks in the storage and only fetches if needed, otherwise it resolves the cached data.
- Optionally, the api call can be made when the browser is idle and the timer is udpated.
Installation
npm i --save fetch-unless-cached
Usage
-
Use the inbuilt cached fetch which caches response for 600 minutes.
; -
Or create a custom cached fetch function with your own duration
/** * Create a custom fetch function which caches response for 300 minutes */const cachedFetch = { /* * cachedFetch is just isomorphic-fetch but coupled with cache * Do not perform .then(res => res.json()) as this happens internally * */ ... return }
Note: If you would like to fetch during an idle state you can set the second argument to true.
const cachedFetch = ;
Credits
- isomorphic-fetch - Fetch api for node and browser
- lscache - localStorage caching with timers
Caveats
- Works only with JSON responses