UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

27 lines (26 loc) • 556 B
function memoize(fn, { maxAge = Number.POSITIVE_INFINITY, cacheKey = JSON.stringify, cache = /* @__PURE__ */ new Map() } = {}) { return function memoized(...args) { const key = cacheKey(args); const date = Date.now(); if (cache.has(key)) { const cached = cache.get(key); if (date - cached.date < maxAge) { return cached.data; } } const data = fn(...args); cache.set(key, { data, date: Date.now() }); return data; }; } export { memoize }; //# sourceMappingURL=memoize.js.map