♻️(backend) replace LiveKit token metadata with attributes

Switch from metadata to attributes when generating LiveKit tokens for
more convenient dict-like structure handling during token creation and
client-side reading.

Attributes provide better data structure flexibility compared to
metadata, simplifying both server-side token generation and client-side
data access patterns.
This commit is contained in:
lebaudantoine
2025-08-27 15:29:16 +02:00
committed by aleb_the_flash
parent f28da45b4c
commit 1268346405
2 changed files with 8 additions and 21 deletions

View File

@@ -10,31 +10,16 @@ function isValidHsl(colorString: string) {
}
export const getParticipantColor = (participant: Participant): string => {
const { metadata } = participant
const attributes = participant.attributes
if (!metadata) {
if (!attributes?.color) {
return DEFAULT_COLOR
}
let parsedMetadata: unknown
try {
parsedMetadata = JSON.parse(metadata)
} catch (error) {
console.error('Invalid JSON in participant metadata:', error)
if (!isValidHsl(attributes.color)) {
console.warn('Invalid color value:', attributes.color)
return DEFAULT_COLOR
}
if (!parsedMetadata || typeof parsedMetadata !== 'object') {
return DEFAULT_COLOR
}
const colorValue = (parsedMetadata as Record<string, unknown>)['color']
if (typeof colorValue !== 'string' || !isValidHsl(colorValue)) {
console.error('Invalid color value:', colorValue)
return DEFAULT_COLOR
}
return colorValue
return attributes.color
}