1var memoize = require('./memoize'); 2 3/** Used as the maximum memoize cache size. */ 4var MAX_MEMOIZE_SIZE = 500; 5 6/** 7 * A specialized version of `_.memoize` which clears the memoized function's 8 * cache when it exceeds `MAX_MEMOIZE_SIZE`. 9 * 10 * @private 11 * @param {Function} func The function to have its output memoized. 12 * @returns {Function} Returns the new memoized function. 13 */ 14function memoizeCapped(func) { 15 var result = memoize(func, function(key) { 16 if (cache.size === MAX_MEMOIZE_SIZE) { 17 cache.clear(); 18 } 19 return key; 20 }); 21 22 var cache = result.cache; 23 return result; 24} 25 26module.exports = memoizeCapped; 27