swr-sync-storage

Synchronize SWR cache with localStorage or sessionStorage to get offline cache

Usage no npm install needed!

<script type="module">
  import swrSyncStorage from 'https://cdn.skypack.dev/swr-sync-storage';
</script>

README

swr-sync-storage

CI Publish Maintainability Test Coverage

Synchronize SWR cache with localStorage or sessionStorage to get offline cache.

Usage

Install it

$ yarn add swr-sync-storage

Note: You will need to provide SWR v0.2.0-beta.0 or greater

import { syncWithStorage } from "swr-sync-storage";
syncWithStorage("local");
syncWithStorage("session");

You can also import to already bound versions of local or session storage.

import { syncWithLocalStorage } from "swr-sync-storage";
syncWithLocalStorage();
import { syncWithSessionStorage } from "swr-sync-storage";
syncWithSessionStorage();

All the functions will return a function to stop subscribing for cache changes.

All functions receive a parser function to let you parse the storage value, the default value is:

function parser(value: string): any {
  return value === 'undefined' ? undefined : JSON.parse(value);
}

If your SWR cache could have non-object values such as numbers you could pass a custom parser and control how syncWithStorage will transform it before adding it to SWR.