/
lostSun
/
project-client-server-apps
Обзор
Документация
Войти
/
lostSun
/
project-client-server-apps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/webpack/lib/util/memoize.js
36 строк
679 B
1lostsun
initial commit
05 май 2025, 11:35
05 май 2025, 11:35
fe8f535
Код
Авторство
О чём код?
/* MIT License http://www.opensource.org/licenses/mit-license.php */ "use strict"; /** * @template T * @typedef {() => T} FunctionReturning */ /** * @template T * @param {FunctionReturning<T>} fn memorized function * @returns {FunctionReturning<T>} new function */ const memoize = fn => { let cache = false; /** @type {T | undefined} */ let result; return () => { if (cache) { return /** @type {T} */ (result); } result = fn(); cache = true; // Allow to clean up memory for fn // and all dependent resources /** @type {FunctionReturning<T> | undefined} */ (fn) = undefined; return /** @type {T} */ (result); }; }; module.exports = memoize;