fix(Collector): docs and types (#5937)

This commit is contained in:
Jan
2021-06-29 01:37:45 +02:00
committed by GitHub
parent 41f718f779
commit 6c447b12e3
4 changed files with 17 additions and 17 deletions

View File

@@ -82,7 +82,7 @@ class MessageComponentInteractionCollector extends Collector {
/** /**
* Handles an incoming interaction for possible collection. * Handles an incoming interaction for possible collection.
* @param {Interaction} interaction The interaction to possibly collect * @param {Interaction} interaction The interaction to possibly collect
* @returns {?(Snowflake|string)} * @returns {?Snowflake}
* @private * @private
*/ */
collect(interaction) { collect(interaction) {

View File

@@ -81,7 +81,7 @@ class ReactionCollector extends Collector {
* Handles an incoming reaction for possible collection. * Handles an incoming reaction for possible collection.
* @param {MessageReaction} reaction The reaction to possibly collect * @param {MessageReaction} reaction The reaction to possibly collect
* @param {User} user The user that added the reaction * @param {User} user The user that added the reaction
* @returns {Promise<Snowflake|string>} * @returns {Promise<?(Snowflake|string)>}
* @private * @private
*/ */
async collect(reaction, user) { async collect(reaction, user) {

View File

@@ -95,7 +95,7 @@ class Collector extends EventEmitter {
* @emits Collector#collect * @emits Collector#collect
*/ */
async handleCollect(...args) { async handleCollect(...args) {
const collect = this.collect(...args); const collect = await this.collect(...args);
if (collect && (await this.filter(...args, this.collected))) { if (collect && (await this.filter(...args, this.collected))) {
this.collected.set(collect, args[0]); this.collected.set(collect, args[0]);
@@ -269,7 +269,7 @@ class Collector extends EventEmitter {
* be collected, or returns an object describing the data that should be stored. * be collected, or returns an object describing the data that should be stored.
* @see Collector#handleCollect * @see Collector#handleCollect
* @param {...*} args Any args the event listener emits * @param {...*} args Any args the event listener emits
* @returns {?{key, value}} Data to insert into collection, if any * @returns {?(*|Promise<?*>)} Data to insert into collection, if any
* @abstract * @abstract
*/ */
collect() {} collect() {}

26
typings/index.d.ts vendored
View File

@@ -495,8 +495,8 @@ declare module 'discord.js' {
public adapters: Map<Snowflake, DiscordGatewayAdapterLibraryMethods>; public adapters: Map<Snowflake, DiscordGatewayAdapterLibraryMethods>;
} }
export abstract class Collector<K, V> extends EventEmitter { export abstract class Collector<K, V, F extends any[] = []> extends EventEmitter {
constructor(client: Client, options?: CollectorOptions<[V]>); constructor(client: Client, options?: CollectorOptions<[V, ...F]>);
private _timeout: NodeJS.Timeout | null; private _timeout: NodeJS.Timeout | null;
private _idletimeout: NodeJS.Timeout | null; private _idletimeout: NodeJS.Timeout | null;
@@ -504,9 +504,9 @@ declare module 'discord.js' {
public collected: Collection<K, V>; public collected: Collection<K, V>;
public ended: boolean; public ended: boolean;
public abstract endReason: string | null; public abstract endReason: string | null;
public filter: CollectorFilter<[V]>; public filter: CollectorFilter<[V, ...F]>;
public readonly next: Promise<V>; public readonly next: Promise<V>;
public options: CollectorOptions<[V]>; public options: CollectorOptions<[V, ...F]>;
public checkEnd(): void; public checkEnd(): void;
public handleCollect(...args: any[]): Promise<void>; public handleCollect(...args: any[]): Promise<void>;
public handleDispose(...args: any[]): Promise<void>; public handleDispose(...args: any[]): Promise<void>;
@@ -516,8 +516,8 @@ declare module 'discord.js' {
public toJSON(): unknown; public toJSON(): unknown;
protected listener: (...args: any[]) => void; protected listener: (...args: any[]) => void;
public abstract collect(...args: any[]): K; public abstract collect(...args: any[]): K | null | Promise<K | null>;
public abstract dispose(...args: any[]): K; public abstract dispose(...args: any[]): K | null;
public on(event: 'collect' | 'dispose', listener: (...args: any[]) => Awaited<void>): this; public on(event: 'collect' | 'dispose', listener: (...args: any[]) => Awaited<void>): this;
public on(event: 'end', listener: (collected: Collection<K, V>, reason: string) => Awaited<void>): this; public on(event: 'end', listener: (collected: Collection<K, V>, reason: string) => Awaited<void>): this;
@@ -1381,8 +1381,8 @@ declare module 'discord.js' {
public options: MessageCollectorOptions; public options: MessageCollectorOptions;
public received: number; public received: number;
public collect(message: Message): Snowflake; public collect(message: Message): Snowflake | null;
public dispose(message: Message): Snowflake; public dispose(message: Message): Snowflake | null;
} }
export class MessageComponentInteraction extends Interaction { export class MessageComponentInteraction extends Interaction {
@@ -1423,8 +1423,8 @@ declare module 'discord.js' {
public total: number; public total: number;
public users: Collection<Snowflake, User>; public users: Collection<Snowflake, User>;
public collect(interaction: Interaction): Snowflake; public collect(interaction: Interaction): Snowflake | null;
public dispose(interaction: Interaction): Snowflake; public dispose(interaction: Interaction): Snowflake | null;
public on( public on(
event: 'collect' | 'dispose', event: 'collect' | 'dispose',
listener: (interaction: MessageComponentInteraction) => Awaited<void>, listener: (interaction: MessageComponentInteraction) => Awaited<void>,
@@ -1631,7 +1631,7 @@ declare module 'discord.js' {
public equals(presence: Presence): boolean; public equals(presence: Presence): boolean;
} }
export class ReactionCollector extends Collector<Snowflake | string, MessageReaction> { export class ReactionCollector extends Collector<Snowflake | string, MessageReaction, [User]> {
constructor(message: Message, options?: ReactionCollectorOptions); constructor(message: Message, options?: ReactionCollectorOptions);
private _handleChannelDeletion(channel: GuildChannel): void; private _handleChannelDeletion(channel: GuildChannel): void;
private _handleGuildDeletion(guild: Guild): void; private _handleGuildDeletion(guild: Guild): void;
@@ -1645,8 +1645,8 @@ declare module 'discord.js' {
public static key(reaction: MessageReaction): Snowflake | string; public static key(reaction: MessageReaction): Snowflake | string;
public collect(reaction: MessageReaction): Promise<Snowflake | string>; public collect(reaction: MessageReaction, user: User): Promise<Snowflake | string | null>;
public dispose(reaction: MessageReaction, user: User): Snowflake | string; public dispose(reaction: MessageReaction, user: User): Snowflake | string | null;
public empty(): void; public empty(): void;
public on(event: 'collect' | 'dispose' | 'remove', listener: (reaction: MessageReaction, user: User) => void): this; public on(event: 'collect' | 'dispose' | 'remove', listener: (reaction: MessageReaction, user: User) => void): this;