* 增强事件数据 * @param eventType 事件类型 * @param data 原始数据
(eventType: string, data: T)
| 397 | * @param data 原始数据 |
| 398 | */ |
| 399 | private enhanceEventData<T>(eventType: string, data: T): T & IEventData { |
| 400 | // 处理null或undefined数据 |
| 401 | if (data === null || data === undefined) { |
| 402 | return { |
| 403 | timestamp: Date.now(), |
| 404 | eventId: `${eventType}_${++this.eventIdCounter}`, |
| 405 | source: 'EventBus' |
| 406 | } as T & IEventData; |
| 407 | } |
| 408 | |
| 409 | const enhanced = data as T & IEventData; |
| 410 | |
| 411 | // 如果数据还没有基础事件属性,添加它们 |
| 412 | if (!enhanced.timestamp) { |
| 413 | enhanced.timestamp = Date.now(); |
| 414 | } |
| 415 | if (!enhanced.eventId) { |
| 416 | enhanced.eventId = `${eventType}_${++this.eventIdCounter}`; |
| 417 | } |
| 418 | if (!enhanced.source) { |
| 419 | enhanced.source = 'EventBus'; |
| 420 | } |
| 421 | |
| 422 | return enhanced; |
| 423 | } |
| 424 | |
| 425 | /** |
| 426 | * 转换EventStats为IEventStats |