import type { BrowserWindow } from 'electron'; interface RedisMessageData { channel: string; data: unknown; timestamp: number; } /** * Handle new token created events */ export function handleNewTokenCreated(mainWindow: BrowserWindow, data: unknown): void { const messageData: RedisMessageData = { channel: 'new_token_created', data, timestamp: Date.now(), }; mainWindow.webContents.send('redis-data', messageData); // console.info('Handled new token created:', data); } /** * Handle token CEX updated events */ export function handleTokenCexUpdated(mainWindow: BrowserWindow, data: unknown): void { const messageData: RedisMessageData = { channel: 'token_cex_updated', data, timestamp: Date.now(), }; mainWindow.webContents.send('redis-data', messageData); // console.info('Handled token CEX updated:', data); } /** * Handle max depth reached events */ export function handleMaxDepthReached(mainWindow: BrowserWindow, data: unknown): void { const messageData: RedisMessageData = { channel: 'max_depth_reached', data, timestamp: Date.now(), }; mainWindow.webContents.send('redis-data', messageData); // console.info('Handled max depth reached:', data); } /** * Get the appropriate handler for a Redis channel */ export function getRedisChannelHandler(channel: string): ((mainWindow: BrowserWindow, data: unknown) => void) | null { switch (channel) { case 'new_token_created': return handleNewTokenCreated; case 'token_cex_updated': return handleTokenCexUpdated; case 'max_depth_reached': return handleMaxDepthReached; default: console.warn(`No handler found for Redis channel: ${channel}`); return null; } }