UNPKG

@buger/probe-chat

Version:

CLI and web interface for Probe code search (formerly @buger/probe-web and @buger/probe-chat)

84 lines (73 loc) 2.21 kB
// Map to store active requests by session ID const activeRequests = new Map(); /** * Register a request as active * @param {string} sessionId - The session ID * @param {Object} requestData - Data about the request (can include abort functions, etc.) */ export function registerRequest(sessionId, requestData) { if (!sessionId) { console.warn('Attempted to register request without session ID'); return; } console.log(`Registering request for session: ${sessionId}`); activeRequests.set(sessionId, requestData); } /** * Cancel a request by session ID * @param {string} sessionId - The session ID * @returns {boolean} - Whether the cancellation was successful */ export function cancelRequest(sessionId) { if (!sessionId) { console.warn('Attempted to cancel request without session ID'); return false; } const requestData = activeRequests.get(sessionId); if (!requestData) { console.warn(`No active request found for session: ${sessionId}`); return false; } console.log(`Cancelling request for session: ${sessionId}`); // Call the abort function if it exists if (typeof requestData.abort === 'function') { try { requestData.abort(); console.log(`Successfully aborted request for session: ${sessionId}`); } catch (error) { console.error(`Error aborting request for session ${sessionId}:`, error); } } // Remove the request from the active requests map activeRequests.delete(sessionId); return true; } /** * Check if a request is active * @param {string} sessionId - The session ID * @returns {boolean} - Whether the request is active */ export function isRequestActive(sessionId) { return activeRequests.has(sessionId); } /** * Get all active requests * @returns {Map} - Map of all active requests */ export function getActiveRequests() { return activeRequests; } /** * Clear a request from the active requests map * @param {string} sessionId - The session ID */ export function clearRequest(sessionId) { if (!sessionId) { console.warn('Attempted to clear request without session ID'); return; } if (activeRequests.has(sessionId)) { console.log(`Clearing request for session: ${sessionId}`); activeRequests.delete(sessionId); } }