react-native-cachemere
An async cache manager.
Install
Since AsyncStorage
has been removed from the React Native core, you first need to install @react-native-community/async-storage. Then,
yarn add react-native-cachemere
Example
const getData = async { const CACHE_KEY = `my_cache_key`; // First, try to get data from cache const cachedData = await Cache; if cachedData return cachedData // If no cache is set, get data from server const data = await ; // Then, cache that data const INVALIDATE_AFTER = 3; // the number of attempts after which the cache is invalidated // if set to null, cache is only invalidated after TTL expires const TTL = CacheTTL_12H; // cache for 12h await Cache; return data}
Usage
set
await Cache
key
is a string used to set and get the cached data.
data
must be serializable object.
ttl
is expressed in seconds. There are some standard TTLs exposed by the lib.
CacheTTL_12H = 43200CacheTTL_8H = 28800CacheTTL_6H = 21600CacheTTL_4H = 14400CacheTTL_1H = 3600
attempts
is an integer. Cache is invalidated after this number of attempts. If left unset (or set to null
), cache is only invalidated after TTL expires.
get
await Cache
Returns the data as a parsed JSON. If there's no cached data for that key
or that data cache has expired, returns null
.
When cache expires it is automatically cleared from the storage.
getAll
const all = await Cache
Returns an array with all cached objects, parsed.
clear
await Cacheclearkey
Cache is removed for the specified key
.
clearExpired
await Cache
Remove all expired cache. Can be called at app startup to ensure a decluttered Storage.
clearByRegex
await Cache
Remove all cache with keys that pass the regex
condition.
Can be used when fetching the data with pagination and need to cache every group of data received.