eslint-plugin-mocha
Version:
Eslint rules for mocha.
29 lines (23 loc) • 656 B
JavaScript
/* eslint-disable prefer-rest-params */
;
/** Memoize a function using a custom cache and a key formatter
*
* (rambda does not include a memoizeWith function)
*
* @param {Function} keyGen The function to generate the cache key.
* @param {Function} fn The function to memoize.
* @return {Function} Memoized version of `fn`.
*/
const memoizeWith = (keyGen, fn) => {
const cache = new Map();
return function () {
const key = keyGen(arguments);
if (!cache.has(key)) {
cache.set(key, fn.apply(this, arguments));
}
return cache.get(key);
};
};
module.exports = {
memoizeWith
};