Skip to content

Commit 3109798

Browse files
feat(GuildAuditLogsEntry): expose extra integrationType in relevant log types (#9796)
* feat(GuildAuditLogsEntry): expose ingrationType * fix: not optional, if extra is present on these types not necessary, as it is conditionally assigned * fix: remove non-extra approach * fix(types): string is not guaranteed to be the known enum * fix: adapt type tests to new extra properties * fix: include null in type, since extra is not always populated --------- Co-authored-by: Jiralite <[email protected]>
1 parent ed14135 commit 3109798

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

packages/discord.js/src/structures/GuildAuditLogsEntry.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,16 @@ class GuildAuditLogsEntry {
242242
};
243243
break;
244244

245+
case AuditLogEvent.MemberKick:
246+
case AuditLogEvent.MemberRoleUpdate: {
247+
if (data.integration_type) {
248+
this.extra = {
249+
integrationType: data.integration_type,
250+
};
251+
}
252+
break;
253+
}
254+
245255
default:
246256
break;
247257
}

packages/discord.js/typings/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5414,6 +5414,8 @@ interface GuildAuditLogsTypes {
54145414
export type GuildAuditLogsActionType = GuildAuditLogsTypes[keyof GuildAuditLogsTypes][1] | 'All';
54155415

54165416
export interface GuildAuditLogsEntryExtraField {
5417+
[AuditLogEvent.MemberKick]: { integrationType: string } | null;
5418+
[AuditLogEvent.MemberRoleUpdate]: { integrationType: string } | null;
54175419
[AuditLogEvent.MemberPrune]: { removed: number; days: number };
54185420
[AuditLogEvent.MemberMove]: { channel: VoiceBasedChannel | { id: Snowflake }; count: number };
54195421
[AuditLogEvent.MessageDelete]: { channel: GuildTextBasedChannel | { id: Snowflake }; count: number };

packages/discord.js/typings/index.test-d.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2074,9 +2074,14 @@ expectType<Promise<GuildAuditLogsEntry<null, GuildAuditLogsActionType, GuildAudi
20742074
guild.fetchAuditLogs().then(al => al.entries.first()),
20752075
);
20762076

2077-
expectType<Promise<null | undefined>>(
2077+
expectType<Promise<{ integrationType: string } | null | undefined>>(
20782078
guild.fetchAuditLogs({ type: AuditLogEvent.MemberKick }).then(al => al.entries.first()?.extra),
20792079
);
2080+
2081+
expectType<Promise<{ integrationType: string } | null | undefined>>(
2082+
guild.fetchAuditLogs({ type: AuditLogEvent.MemberRoleUpdate }).then(al => al.entries.first()?.extra),
2083+
);
2084+
20802085
expectType<Promise<StageChannel | { id: Snowflake } | undefined>>(
20812086
guild.fetchAuditLogs({ type: AuditLogEvent.StageInstanceCreate }).then(al => al.entries.first()?.extra),
20822087
);

0 commit comments

Comments
 (0)