ghp / packages /server /src /utils /roomUtils.ts
QSLY's picture
deploy: build Hugging Face Space from source
00a912e
Raw
History Blame Contribute Delete
1.13 kB
import type { RoomState } from '@music-together/shared'
import type { RoomData } from '../repositories/types.js'
/** 将内部 RoomData 转为客户端可见的 RoomState(不含密码明文) */
export function toPublicRoomState(data: RoomData): RoomState {
return {
id: data.id,
name: data.name,
creatorId: data.creatorId,
hostId: data.hostId,
temporaryAdminUserId: data.temporaryAdminUserId,
hasPassword: data.password !== null,
hidden: data.hidden,
permanent: data.permanent,
allowTemporaryAdminTrackRemoval: data.allowTemporaryAdminTrackRemoval,
allowTemporaryAdminQueueClear: data.allowTemporaryAdminQueueClear,
audioQuality: data.audioQuality,
users: data.users,
members: data.members,
queue: data.queue,
currentTrack: data.currentTrack,
playState: data.playState,
playMode: data.playMode,
}
}
/** 仅 owner 可见的完整房间状态(含密码明文,用于设置面板展示) */
export function toPublicRoomStateForOwner(data: RoomData): RoomState {
return {
...toPublicRoomState(data),
password: data.password ?? null,
}
}