This commit is contained in:
2024-11-03 17:16:20 +01:00
commit fd6412d6f2
8090 changed files with 778406 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
export default function (callback, options = {}) {
let { bench, name } = options;
let cache = new Map();
return (...args) => {
// Only supports single-arg functions for now.
if (args.filter(Boolean).length > 1) {
bench?.get(`(count) ${name} Not valid for memoize`).incrementCount();
return callback(...args);
}
let [cacheKey] = args;
if (!cache.has(cacheKey)) {
cache.set(cacheKey, callback(...args));
bench?.get(`(count) ${name} memoize miss`).incrementCount();
return cache.get(cacheKey);
}
bench?.get(`(count) ${name} memoize hit`).incrementCount();
return cache.get(cacheKey);
};
}