Split extra fields into their own types (#4256)

* Split extra fields into their own types

For now they are added back to the types they belong to to avoid
breaking in this pr

* fix type errors

* Fix typo 1

Co-authored-by: Link <lts20050703@gmail.com>

* Fix typo 2

Co-authored-by: Link <lts20050703@gmail.com>

* Use omit and not partial on guild voice_states

Co-authored-by: Link <lts20050703@gmail.com>

* Remove unused `ts-expect-error`

---------

Co-authored-by: Link <lts20050703@gmail.com>
This commit is contained in:
Fleny
2025-07-20 18:47:30 +02:00
committed by GitHub
co-authored by Link
parent 08a47e6872
commit 1cb60c909c
8 changed files with 169 additions and 86 deletions
+9 -1
View File
@@ -42,7 +42,15 @@ export type EventHandlers<TProps extends TransformersDesiredProperties, TBehavio
threads: SetupDesiredProps<Channel, TProps, TBehavior>[]
members: ThreadMember[]
}) => unknown
threadMemberUpdate: (payload: { id: bigint; guildId: bigint; joinedAt: number; flags: number }) => unknown
threadMemberUpdate: (payload: {
id: bigint
guildId: bigint
// TODO: remove this in the next major version
/** @deprecated Use joinedTimestamp */
joinedAt: number
joinedTimestamp: number
flags: number
}) => unknown
threadMembersUpdate: (payload: { id: bigint; guildId: bigint; addedMembers?: ThreadMember[]; removedMemberIds?: bigint[] }) => unknown
threadUpdate: (thread: SetupDesiredProps<Channel, TProps, TBehavior>) => unknown
scheduledEventCreate: (event: SetupDesiredProps<ScheduledEvent, TProps, TBehavior>) => unknown
@@ -9,7 +9,9 @@ export async function handleThreadMemberUpdate(bot: Bot, data: DiscordGatewayPay
bot.events.threadMemberUpdate({
id: bot.transformers.snowflake(payload.id),
guildId: bot.transformers.snowflake(payload.guild_id),
joinedAt: Date.parse(payload.joined_at),
// TODO: remove this in the next major version
joinedAt: 'joined_at' in payload && typeof payload.joined_at === 'string' ? Date.parse(payload.joined_at) : 0,
joinedTimestamp: Date.parse(payload.join_timestamp),
flags: payload.flags,
})
}
+1
View File
@@ -194,6 +194,7 @@ export function transformMessage(
message.interaction = interaction
}
if (props.member && guildId && userId && payload.message.member)
// @ts-expect-error TODO: partial
message.member = bot.transformers.member(bot, payload.message.member, guildId, userId)
if (payload.message.mention_everyone) message.mentionEveryone = true
if (props.mentionedChannelIds && payload.message.mention_channels?.length) {