memoize-id
Memoize a function by the identity of its arguments, using ES2015 Map.
Installation
npm install memoize-id
Note: ES2015 Symbol and Map must be available where memoize-id is used. Refer to ECMAScript 6 compatibility table.
Usage
import memoize from 'memoize-id';
let i = 0;
function fn(foo, bar, baz) {
i += 1;
return {
args: [foo, bar, baz],
i,
};
}
const memoizedFn = memoize(fn);
console.log(i);
const v1 = memoizedFn('foo', 'bar', 'baz');
console.log(v1);
console.log(i);
const v2 = memoizedFn('foo', 'bar', 'baz');
console.log(v2);
console.log(v1 === v2);
console.log(i);
const v3 = memoizedFn('foo', 'qux', 'baz');
console.log(v3);
console.log(i);
console.log(v1 == v3);