Skip to content

Store fetch responses in localStorage with expire timers! And fetch when idle and update cache in the background

License

Notifications You must be signed in to change notification settings

imbhargav5/fetch-unless-cached

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fetch-unless-cached

Store fetch JSON responses in localStorage with expire timers! And fetch only if the timer has expired.


npm npm

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

  1. Use the inbuilt cached fetch which caches response for 600 minutes.

    import cachedFetch from "fetch-unless-cached";
  2. Or create a custom cached fetch function with your own duration

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.

const cachedFetch = createfetchUnlessCached(300, true);

Credits

  • isomorphic-fetch - Fetch api for node and browser
  • lscache - localStorage caching with timers

Caveats

  • Works only with JSON responses

About

Store fetch responses in localStorage with expire timers! And fetch when idle and update cache in the background

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published