feat(event): normalize session.status to session.idle
Add session-status-normalizer to handle session.status events and convert idle status to synthetic session.idle events. Includes deduplication logic to prevent duplicate idle events within 500ms.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
type EventInput = { event: { type: string; properties?: Record<string, unknown> } }
|
||||
type SessionStatus = { type: string }
|
||||
|
||||
export function normalizeSessionStatusToIdle(input: EventInput): EventInput | null {
|
||||
if (input.event.type !== "session.status") return null
|
||||
|
||||
const props = input.event.properties
|
||||
if (!props) return null
|
||||
|
||||
const status = props.status as SessionStatus | undefined
|
||||
if (!status || status.type !== "idle") return null
|
||||
|
||||
const sessionID = props.sessionID as string | undefined
|
||||
if (!sessionID) return null
|
||||
|
||||
return {
|
||||
event: {
|
||||
type: "session.idle",
|
||||
properties: { sessionID },
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user