From a7cb314e0709438c8212ff4a8a897bcf0771a067 Mon Sep 17 00:00:00 2001 From: muchnameless <12682826+muchnameless@users.noreply.github.com> Date: Sat, 2 Oct 2021 13:41:53 +0200 Subject: [PATCH] types(TextBasedChannels): fix awaitMessageComponent return type (#6723) --- typings/index.d.ts | 2 +- typings/tests.ts | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index 59350c7e889e..fda36b575539 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2817,7 +2817,7 @@ export interface TextBasedChannelFields extends PartialTextBasedChannelFields { readonly lastPinAt: Date | null; awaitMessageComponent( options?: AwaitMessageCollectorOptionsParams, - ): Promise>; + ): Promise>; awaitMessages(options?: AwaitMessagesOptions): Promise>; bulkDelete( messages: Collection | readonly MessageResolvable[] | number, diff --git a/typings/tests.ts b/typings/tests.ts index e37dbf82e02f..3d7a5d43526d 100644 --- a/typings/tests.ts +++ b/typings/tests.ts @@ -498,21 +498,26 @@ client.on('messageCreate', message => { // Verify that buttons interactions are inferred. const buttonCollector = message.createMessageComponentCollector({ componentType: 'BUTTON' }); assertType>(message.awaitMessageComponent({ componentType: 'BUTTON' })); + assertType>(channel.awaitMessageComponent({ componentType: 'BUTTON' })); assertType>(buttonCollector); // Verify that select menus interaction are inferred. const selectMenuCollector = message.createMessageComponentCollector({ componentType: 'SELECT_MENU' }); assertType>(message.awaitMessageComponent({ componentType: 'SELECT_MENU' })); + assertType>(channel.awaitMessageComponent({ componentType: 'SELECT_MENU' })); assertType>(selectMenuCollector); // Verify that message component interactions are default collected types. const defaultCollector = message.createMessageComponentCollector(); assertType>(message.awaitMessageComponent()); + assertType>(channel.awaitMessageComponent()); assertType>(defaultCollector); // Verify that additional options don't affect default collector types. const semiDefaultCollector = message.createMessageComponentCollector({ time: 10000 }); assertType>(semiDefaultCollector); + const semiDefaultCollectorChannel = message.createMessageComponentCollector({ time: 10000 }); + assertType>(semiDefaultCollectorChannel); // Verify that interaction collector options can't be used. @@ -565,6 +570,29 @@ client.on('messageCreate', message => { return true; }, }); + + channel.awaitMessageComponent({ + filter: i => { + assertType(i); + return true; + }, + }); + + channel.awaitMessageComponent({ + componentType: 'BUTTON', + filter: i => { + assertType(i); + return true; + }, + }); + + channel.awaitMessageComponent({ + componentType: 'SELECT_MENU', + filter: i => { + assertType(i); + return true; + }, + }); }); client.on('interaction', async interaction => {