Download web/node_modules/enhanced-resolve/lib/util/memoize.js from Amitkumar001/Law_Slm: direct link, hf CLI and curl.
- Browser
- Download file 711 Bytes
-
https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/web/node_modules/enhanced-resolve/lib/util/memoize.js
- Command line
-
hf download hf://Amitkumar001/Law_Slm/web/node_modules/enhanced-resolve/lib/util/memoize.js
-
curl -L -o memoize.js https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/web/node_modules/enhanced-resolve/lib/util/memoize.js
711 Bytes
| /* | |
| MIT License http://www.opensource.org/licenses/mit-license.php | |
| Author Tobias Koppers @sokra | |
| */ | |
| ; | |
| /** | |
| * @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; | |