fix(bot): Check nullable in transformPresence (#4370)

Despite the type not having the optional, it may get called with an partial object
This commit is contained in:
Fleny
2025-08-16 20:53:07 +05:30
committed by GitHub
parent 38d1707788
commit 825906aed7
+10 -10
View File
@@ -1,16 +1,16 @@
import { type DiscordPresenceUpdate, PresenceStatus } from '@discordeno/types' import { type DiscordPresenceUpdate, PresenceStatus } from '@discordeno/types'
import type { Bot, PresenceUpdate } from '../index.js' import type { Bot, PresenceUpdate, User } from '../index.js'
export function transformPresence(bot: Bot, payload: DiscordPresenceUpdate): PresenceUpdate { export function transformPresence(bot: Bot, payload: DiscordPresenceUpdate): PresenceUpdate {
const presence = { const presence = {} as PresenceUpdate
user: bot.transformers.user(bot, payload.user),
guildId: bot.transformers.snowflake(payload.guild_id), if (payload.user) presence.user = bot.transformers.user(bot, payload.user) as User
status: PresenceStatus[payload.status], if (payload.guild_id) presence.guildId = bot.transformers.snowflake(payload.guild_id)
activities: payload.activities.map((activity) => bot.transformers.activity(bot, activity)), if (payload.status) presence.status = PresenceStatus[payload.status]
desktop: payload.client_status.desktop, if (payload.activities) presence.activities = payload.activities.map((activity) => bot.transformers.activity(bot, activity))
mobile: payload.client_status.mobile, if (payload.client_status.desktop) presence.desktop = payload.client_status.desktop
web: payload.client_status.web, if (payload.client_status.mobile) presence.mobile = payload.client_status.mobile
} as PresenceUpdate if (payload.client_status.web) presence.web = payload.client_status.web
return bot.transformers.customizers.presence(bot, payload, presence) return bot.transformers.customizers.presence(bot, payload, presence)
} }