Server IP : 66.29.132.122 / Your IP : 13.59.67.238 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/proc/thread-self/root/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules/mem/ |
Upload File : |
'use strict'; const mimicFn = require('mimic-fn'); const cacheStore = new WeakMap(); const defaultCacheKey = function (x) { if (arguments.length === 1 && (x === null || x === undefined || (typeof x !== 'function' && typeof x !== 'object'))) { return x; } return JSON.stringify(arguments); }; module.exports = (fn, opts) => { opts = Object.assign({ cacheKey: defaultCacheKey, cache: new Map() }, opts); const memoized = function () { const cache = cacheStore.get(memoized); const key = opts.cacheKey.apply(null, arguments); if (cache.has(key)) { const c = cache.get(key); if (typeof opts.maxAge !== 'number' || Date.now() < c.maxAge) { return c.data; } } const ret = fn.apply(null, arguments); cache.set(key, { data: ret, maxAge: Date.now() + (opts.maxAge || 0) }); return ret; }; mimicFn(memoized, fn); cacheStore.set(memoized, opts.cache); return memoized; }; module.exports.clear = fn => { const cache = cacheStore.get(fn); if (cache && typeof cache.clear === 'function') { cache.clear(); } };