Version 1
[yaffs-website] / node_modules / uncss / node_modules / form-data / node_modules / lodash / _memoizeCapped.js
diff --git a/node_modules/uncss/node_modules/form-data/node_modules/lodash/_memoizeCapped.js b/node_modules/uncss/node_modules/form-data/node_modules/lodash/_memoizeCapped.js
new file mode 100644 (file)
index 0000000..7f71c8f
--- /dev/null
@@ -0,0 +1,26 @@
+var memoize = require('./memoize');
+
+/** Used as the maximum memoize cache size. */
+var MAX_MEMOIZE_SIZE = 500;
+
+/**
+ * A specialized version of `_.memoize` which clears the memoized function's
+ * cache when it exceeds `MAX_MEMOIZE_SIZE`.
+ *
+ * @private
+ * @param {Function} func The function to have its output memoized.
+ * @returns {Function} Returns the new memoized function.
+ */
+function memoizeCapped(func) {
+  var result = memoize(func, function(key) {
+    if (cache.size === MAX_MEMOIZE_SIZE) {
+      cache.clear();
+    }
+    return key;
+  });
+
+  var cache = result.cache;
+  return result;
+}
+
+module.exports = memoizeCapped;