Fork of mem with "staleWhileRevalidate" and "staleIfError"
npm install -S @fabsrc/re-mem
import reMem from "@fabsrc/re-mem"
function getData(id) {
return Promise.resolve(`Data: ${id}`)
}
const getDataMemoized = reMem(getData, {
maxAge: 1000,
staleWhileRevalidate: 10000,
staleIfError: 20000
})
getDataMemoized(123)
.then(console.log)
.catch(console.error)
cacheKey
Function that returns a cache key based on arguments passed to a function. By default the first argument is used as cache keycache
Custom cache to store data in. (Default:new Map()
)cachePromiseRejection
Boolean flag wether to cache rejected Promises or not (Default:false
)maxAge
Time in ms to return the cached promise (Default:Infinity
)staleWhileRevalidate
Time in ms to return stale data while revalidating the data in the background. The time starts aftermaxAge
runs out.staleIfError
Time in ms to return stale data if original promise rejects with an error.
npm test