@strong-roots-capital/memoize
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

memoize

Build Status

Higher-order memoization function

Why?

I couldn't find a simple memoization library that was all of the following

  • stable
  • statically typed
  • control over memory usage
  • used the fastest LRU
  • offered the simplest syntax

Install

npm install @strong-roots-capital/memoize

Use

import { memoize } from '@strong-roots-capital/memoize'

declare function f(parameter: number)

const cacheSize = 100
const memoized = memoize(cacheSize)(f)

// Then use `memoized` in place of `f`
memoized(42)

Note that the underlying LRU is implemented with an es6 map, so cache hits are governed by the rules of Map.prototype.get; for example, objects are compared with strict equality.

As a result, memoize only accepts thunks (functions accepting zero arguments) and unary functions (functions accepting a single argument).

Related

Acknowledgments

Readme

Keywords

Package Sidebar

Install

npm i @strong-roots-capital/memoize

Weekly Downloads

8

Version

3.0.2

License

ISC

Unpacked Size

6.5 kB

Total Files

7

Last publish

Collaborators

  • hamroctopus
  • amchelle