From 0dba8adbd2e6efd634bd3eb31df09467ba8a8a0d Mon Sep 17 00:00:00 2001 From: Jiralite <33201955+Jiralite@users.noreply.github.com> Date: Sat, 20 Aug 2022 20:03:36 +0100 Subject: [PATCH] types(GuildAuditLogs): Allow fetching to return all possible values (#8522) types: allow everything to be returned upon fetching Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/discord.js/typings/index.d.ts | 15 +++++++++------ packages/discord.js/typings/index.test-d.ts | 8 +++++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 9f765adb5..ac715ff64 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -1181,7 +1181,7 @@ export class Guild extends AnonymousGuild { public toJSON(): unknown; } -export class GuildAuditLogs { +export class GuildAuditLogs { private constructor(guild: Guild, data: RawGuildAuditLogData); private applicationCommands: Collection; private webhooks: Collection; @@ -1192,23 +1192,26 @@ export class GuildAuditLogs { } export class GuildAuditLogsEntry< - TAction extends GuildAuditLogsResolvable = null, + TAction extends GuildAuditLogsResolvable = AuditLogEvent, TActionType extends GuildAuditLogsActionType = TAction extends keyof GuildAuditLogsTypes ? GuildAuditLogsTypes[TAction][1] - : 'All', + : GuildAuditLogsActionType, TTargetType extends GuildAuditLogsTargetType = TAction extends keyof GuildAuditLogsTypes ? GuildAuditLogsTypes[TAction][0] - : 'Unknown', + : GuildAuditLogsTargetType, + TResolvedType = TAction extends null ? AuditLogEvent : TAction, > { private constructor(logs: GuildAuditLogs, guild: Guild, data: RawGuildAuditLogEntryData); public static Targets: GuildAuditLogsTargets; - public action: TAction; + public action: TResolvedType; public actionType: TActionType; public changes: AuditLogChange[]; public get createdAt(): Date; public get createdTimestamp(): number; public executor: User | null; - public extra: TAction extends keyof GuildAuditLogsEntryExtraField ? GuildAuditLogsEntryExtraField[TAction] : null; + public extra: TResolvedType extends keyof GuildAuditLogsEntryExtraField + ? GuildAuditLogsEntryExtraField[TResolvedType] + : null; public id: Snowflake; public reason: string | null; public target: TTargetType extends keyof GuildAuditLogsEntryTargetField diff --git a/packages/discord.js/typings/index.test-d.ts b/packages/discord.js/typings/index.test-d.ts index 7946a360e..4b18299d5 100644 --- a/packages/discord.js/typings/index.test-d.ts +++ b/packages/discord.js/typings/index.test-d.ts @@ -134,6 +134,8 @@ import { Webhook, WebhookClient, InteractionWebhook, + GuildAuditLogsActionType, + GuildAuditLogsTargetType, } from '.'; import { expectAssignable, expectNotAssignable, expectNotType, expectType } from 'tsd'; import type { ContextMenuCommandBuilder, SlashCommandBuilder } from '@discordjs/builders'; @@ -1533,7 +1535,7 @@ expectType>>( ); expectType>>(guild.fetchAuditLogs({ type: null })); -expectType>>(guild.fetchAuditLogs()); +expectType>>(guild.fetchAuditLogs()); expectType | undefined>>( guild.fetchAuditLogs({ type: AuditLogEvent.MemberKick }).then(al => al.entries.first()), @@ -1542,10 +1544,10 @@ expectAssignable al.entries.first()), ); -expectType | undefined>>( +expectType | undefined>>( guild.fetchAuditLogs({ type: null }).then(al => al.entries.first()), ); -expectType | undefined>>( +expectType | undefined>>( guild.fetchAuditLogs().then(al => al.entries.first()), );