UNPKG

@jay-js/system

Version:

A powerful and flexible TypeScript library for UI, state management, lazy loading, routing and managing draggable elements in modern web applications.

44 lines (43 loc) 1.18 kB
export const ImportedModules = {}; let idleTime = 0; let ModulesCollector = setInterval(Collector, 2000); function Collector() { const toRemove = []; for(const module in ImportedModules){ if (ImportedModules[module].lastUsed > 5 && ImportedModules[module].collect) { toRemove.push(module); } else { ImportedModules[module].lastUsed++; } } toRemove.forEach((module)=>{ delete ImportedModules[module]; }); idleTime++; if (idleTime > 6) { clearInterval(ModulesCollector); for(const module in ImportedModules){ ImportedModules[module].lastUsed = 0; } } } const resetIdle = ()=>{ idleTime = 0; if (!ModulesCollector) { ModulesCollector = setInterval(Collector, 60000); } }; const idleOptions = { passive: true, capture: true }; window.addEventListener("mousemove", resetIdle, idleOptions); window.addEventListener("keypress", resetIdle, idleOptions); setInterval(()=>{ idleTime++; if (idleTime > 3) { for(const module in ImportedModules){ ImportedModules[module].lastUsed = 0; } } }, 60000);