(message, index)
| 116 | } |
| 117 | |
| 118 | function normalizeMessage(message, index) { |
| 119 | const fallbackTimestamp = Date.now(); |
| 120 | |
| 121 | if (!message || typeof message !== 'object') { |
| 122 | return { |
| 123 | id: index + 1, |
| 124 | eventType: 'message', |
| 125 | data: String(message ?? ''), |
| 126 | lastEventId: '', |
| 127 | timestamp: fallbackTimestamp |
| 128 | }; |
| 129 | } |
| 130 | |
| 131 | return { |
| 132 | id: Number.isFinite(Number(message.id)) ? Number(message.id) : index + 1, |
| 133 | eventType: message.eventType || 'message', |
| 134 | data: typeof message.data === 'string' ? message.data : JSON.stringify(message.data ?? ''), |
| 135 | lastEventId: message.lastEventId || '', |
| 136 | timestamp: parseTimestamp(message.timestamp, fallbackTimestamp) |
| 137 | }; |
| 138 | } |
| 139 | |
| 140 | function parseTimestamp(value, fallback) { |
| 141 | if (typeof value === 'number' && Number.isFinite(value)) { |
no test coverage detected