@fabsrc/re-mem
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

re-mem

Fork of mem with "staleWhileRevalidate" and "staleIfError"

Node.js CI

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 key
  • cache 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 after maxAge runs out.
  • staleIfError Time in ms to return stale data if original promise rejects with an error.

Development

Testing

npm test

/@fabsrc/re-mem/

    Package Sidebar

    Install

    npm i @fabsrc/re-mem

    Weekly Downloads

    1

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    8.53 kB

    Total Files

    5

    Last publish

    Collaborators

    • fabsrc