import type { Response as ServerResponse } from 'express'; import type { ServerSentEvent } from '~/types'; /** * Sends message data in Server Sent Events format. * @param res - The server response. * @param event - The message event. * @param event.event - The type of event. * @param event.data - The message to be sent. */ export function sendEvent(res: ServerResponse, event: ServerSentEvent): void { if (typeof event.data === 'string' && event.data.length === 0) { return; } res.write(`event: message\ndata: ${JSON.stringify(event)}\n\n`); } /** * Sends error data in Server Sent Events format and ends the response. * @param res - The server response. * @param message - The error message. */ export function handleError(res: ServerResponse, message: string): void { res.write(`event: error\ndata: ${JSON.stringify(message)}\n\n`); res.end(); }