p-memoize

Memoize promise-returning & async functions

Usage no npm install needed!

<script type="module">
  import pMemoize from 'https://cdn.skypack.dev/p-memoize';
</script>

README

p-memoize Build Status

Memoize promise-returning & async functions

Useful for speeding up consecutive function calls by caching the result of calls with identical input.

By default, only the memoized function's first argument is considered and it only works with primitives. If you need to cache multiple arguments or cache objects by value, have a look at options below.

Install

$ npm install p-memoize

Usage

const pMemoize = require('p-memoize');
const got = require('got');

const memGot = pMemoize(got, {maxAge: 1000});

(async () => {
    memGot('https://sindresorhus.com');

    // This call is cached
    memGot('https://sindresorhus.com');

    setTimeout(() => {
        // This call is not cached as the cache has expired
        memGot('https://sindresorhus.com');
    }, 2000);
})();

API

pMemoize(fn, options?)

Returns a memoized version of the fn function.

fn

Type: Function

Promise-returning or async function to be memoized.

options

Type: object

See the mem options in addition to the below option.

cachePromiseRejection

Type: boolean
Default: false

Cache rejected promises.

pMemoize.clear(memoized)

Clear all cached data of a memoized function.

Will throw if passed a non-memoized function.

Related