| Current Path : /usr/local/lib/node_modules/@google/gemini-cli/node_modules/es-toolkit/dist/function/ |
| Current File : //usr/local/lib/node_modules/@google/gemini-cli/node_modules/es-toolkit/dist/function/memoize.js |
'use strict';
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
function memoize(fn, options = {}) {
const { cache = new Map(), getCacheKey } = options;
const memoizedFn = function (arg) {
const key = getCacheKey ? getCacheKey(arg) : arg;
if (cache.has(key)) {
return cache.get(key);
}
const result = fn.call(this, arg);
cache.set(key, result);
return result;
};
memoizedFn.cache = cache;
return memoizedFn;
}
exports.memoize = memoize;