Files
moeka-project/packages/core-agent/src/agents/spark-notify/event-source.ts
T
Nekoandautofix-ci[bot] 668440a732 refactor(extension-*,stage-tamagotchi,stage-ui,server-*): rename to extension, improve DX (#1892)
---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by-agent: Codex
2026-06-12 02:03:42 +08:00

37 lines
789 B
TypeScript

import type { MetadataEventSource } from '@proj-airi/server-sdk'
interface EventSourcePayload {
source?: string
metadata?: { source?: MetadataEventSource }
}
function formatMetadataSource(source?: MetadataEventSource) {
if (!source)
return undefined
if ('extension' in source) {
return `${source.extension.id}:${source.id}`
}
return source.id
}
/**
* Resolves a stable source key for websocket-originated events.
*
* Before:
* - `{ source: "minecraft" }`
* - `{ metadata: { source: { extension: { id: "p" }, id: "i" } } }`
*
* After:
* - `"minecraft"`
* - `"p:i"`
*/
export function getEventSourceKey(event: EventSourcePayload, fallback = 'unknown') {
return (
formatMetadataSource(event.metadata?.source)
?? event.source
?? fallback
)
}