Skip to main content
Glama
deleonio
by deleonio
simple-handles.js2.2 kB
'use strict'; /** * Simple handle tracking for clean test execution */ let activeTimers = new Set(); function trackHandles() { // Track and intercept timers for cleanup const originalSetTimeout = global.setTimeout; const originalSetInterval = global.setInterval; const originalClearTimeout = global.clearTimeout; const originalClearInterval = global.clearInterval; global.setTimeout = function (...args) { const timer = originalSetTimeout.apply(this, args); activeTimers.add(timer); return timer; }; global.setInterval = function (...args) { const timer = originalSetInterval.apply(this, args); activeTimers.add(timer); return timer; }; global.clearTimeout = function (timer) { activeTimers.delete(timer); return originalClearTimeout.call(this, timer); }; global.clearInterval = function (timer) { activeTimers.delete(timer); return originalClearInterval.call(this, timer); }; // Store original handlers for cleanup const originalHandlers = { setTimeout: originalSetTimeout, setInterval: originalSetInterval, clearTimeout: originalClearTimeout, clearInterval: originalClearInterval, }; return { clearAllTimers() { // Clear all tracked timers for (const timer of activeTimers) { try { originalClearTimeout(timer); originalClearInterval(timer); } catch (e) { // Ignore errors when clearing timers } } activeTimers.clear(); }, getActiveTimers() { return Array.from(activeTimers); }, setCurrentComponent() { // Simplified - no component tracking needed }, clearCurrentComponent() { // Simplified - no component tracking needed }, getTimersByComponent() { return {}; // Simplified - no component tracking }, restore() { // Restore original functions global.setTimeout = originalHandlers.setTimeout; global.setInterval = originalHandlers.setInterval; global.clearTimeout = originalHandlers.clearTimeout; global.clearInterval = originalHandlers.clearInterval; }, }; } function restoreHandles() { // Will be handled by the tracker object } function forceExit() { process.exit(0); } module.exports = { trackHandles, restoreHandles, forceExit, };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deleonio/public-ui-kolibri'

If you have feedback or need assistance with the MCP directory API, please join our Discord server