Socket
Book a DemoInstallSign in
Socket

@fabsrc/re-mem

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fabsrc/re-mem

Memoization with stale-while-revalidate and stale-if-error

latest
npmnpm
Version
2.0.0
Version published
Maintainers
1
Created
Source

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

Keywords

memoization

FAQs

Package last updated on 09 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts