UNPKG

eslint-plugin-mocha

Version:
29 lines (23 loc) 656 B
/* eslint-disable prefer-rest-params */ 'use strict'; /** 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 };