Store fetch JSON responses in localStorage with expire timers! And fetch only if the timer has expired.
npm install fetch-unless-cachedStore fetch JSON responses in localStorage with expire timers! And fetch only if the timer has expired.



* 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.
``shell`
npm i --save fetch-unless-cached
1. Use the inbuilt cached fetch which caches response for 600 minutes.
`javascript`
import cachedFetch from "fetch-unless-cached";
2. Or create a custom cached fetch function with your own duration
`javascript
import {createfetchUnlessCached} from "fetch-unless-cached"
/**
* Create a custom fetch function which caches response for 300 minutes
*/
const cachedFetch = createfetchUnlessCached(300)
function fetchMyData(){
/*
* cachedFetch is just isomorphic-fetch but coupled with cache
* Do not perform .then(res => res.json()) as this happens internally
*
*/
...
return cachedFetch('myapi.com').then(response => console.log(response))
}
`
Note: If you would like to fetch during an idle state you can set the second argument to true.
`javascript``
const cachedFetch = createfetchUnlessCached(300, true);
* [x] isomorphic-fetch - Fetch api for node and browser
* [x] lscache - localStorage caching with timers
* [x] Works only with JSON responses