UNPKG

633 BJavaScriptView Raw
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;