@fabsrc/re-mem
v2.0.0
Published
Memoization with stale-while-revalidate and stale-if-error
Downloads
5
Maintainers
Readme
re-mem
Fork of mem with "staleWhileRevalidate" and "staleIfError"
Install
npm install -S @fabsrc/re-mem
Usage
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)
Options
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.
Development
Testing
npm test