PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/alt/alt-nodejs8/root/lib/node_modules/npm/node_modules/mem/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/alt/alt-nodejs8/root/lib/node_modules/npm/node_modules/mem/index.js |
'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(); } };