(event: EnrichedTelemetryEvent)
| 249 | } |
| 250 | |
| 251 | export function flattenEvent(event: EnrichedTelemetryEvent): Record<string, TelemetryPrimitive> { |
| 252 | const out: Record<string, TelemetryPrimitive> = {}; |
| 253 | for (const [key, value] of Object.entries(event)) { |
| 254 | if (key === 'properties') { |
| 255 | flattenNested(out, 'property', value); |
| 256 | } else if (key === 'context') { |
| 257 | flattenNested(out, 'context', value); |
| 258 | } else { |
| 259 | assertPrimitive(key, value); |
| 260 | out[key] = value; |
| 261 | } |
| 262 | } |
| 263 | return out; |
| 264 | } |
| 265 | |
| 266 | function flattenNested(target: Record<string, TelemetryPrimitive>, prefix: string, value: unknown) { |
| 267 | if (value === null || typeof value !== 'object' || Array.isArray(value)) return; |
no test coverage detected