chore(ThreadMemberManager): make #fetch only take one object parameter (#6997)

This commit is contained in:
Suneet Tipirneni
2022-01-08 06:42:30 -05:00
committed by GitHub
parent cee7fd181c
commit 1db6c2d37e
3 changed files with 15 additions and 9 deletions

View File

@@ -107,15 +107,18 @@ class ThreadMemberManager extends CachedManager {
return raw.reduce((col, member) => col.set(member.user_id, this._add(member, cache)), new Collection()); return raw.reduce((col, member) => col.set(member.user_id, this._add(member, cache)), new Collection());
} }
/**
* @typedef {BaseFetchOptions} ThreadMemberFetchOptions
* @property {UserResolvable} [member] The specific user to fetch from the thread
*/
/** /**
* Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent. * Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent.
* @param {UserResolvable|boolean} [member] The member to fetch. If `undefined`, all members * @param {ThreadMemberFetchOptions|boolean} [options] Additional options for this fetch, when a `boolean` is provided
* in the thread are fetched, and will be cached based on `options.cache`. If boolean, this serves * all members are fetched with `options.cache` set to the boolean value
* the purpose of `options.cache`.
* @param {BaseFetchOptions} [options] Additional options for this fetch
* @returns {Promise<ThreadMember|Collection<Snowflake, ThreadMember>>} * @returns {Promise<ThreadMember|Collection<Snowflake, ThreadMember>>}
*/ */
fetch(member, { cache = true, force = false } = {}) { fetch({ member, cache = true, force = false } = {}) {
const id = this.resolveId(member); const id = this.resolveId(member);
return id ? this._fetchOne(id, cache, force) : this._fetchMany(member ?? cache); return id ? this._fetchOne(id, cache, force) : this._fetchMany(member ?? cache);
} }

View File

@@ -3213,8 +3213,7 @@ export class ThreadMemberManager extends CachedManager<Snowflake, ThreadMember,
private constructor(thread: ThreadChannel, iterable?: Iterable<RawThreadMemberData>); private constructor(thread: ThreadChannel, iterable?: Iterable<RawThreadMemberData>);
public thread: ThreadChannel; public thread: ThreadChannel;
public add(member: UserResolvable | '@me', reason?: string): Promise<Snowflake>; public add(member: UserResolvable | '@me', reason?: string): Promise<Snowflake>;
public fetch(member?: UserResolvable, options?: BaseFetchOptions): Promise<ThreadMember>; public fetch(options?: ThreadMemberFetchOptions): Promise<ThreadMember>;
/** @deprecated Use `fetch(member, options)` instead. */
public fetch(cache?: boolean): Promise<Collection<Snowflake, ThreadMember>>; public fetch(cache?: boolean): Promise<Collection<Snowflake, ThreadMember>>;
public remove(id: Snowflake | '@me', reason?: string): Promise<Snowflake>; public remove(id: Snowflake | '@me', reason?: string): Promise<Snowflake>;
} }
@@ -3732,6 +3731,10 @@ export interface BaseFetchOptions {
force?: boolean; force?: boolean;
} }
export interface ThreadMemberFetchOptions extends BaseFetchOptions {
member?: UserResolvable;
}
export interface BaseMessageComponentOptions { export interface BaseMessageComponentOptions {
type?: MessageComponentType | MessageComponentTypes; type?: MessageComponentType | MessageComponentTypes;
} }

View File

@@ -461,8 +461,8 @@ client.on('guildCreate', async g => {
if (!channel) return; if (!channel) return;
if (channel.isThread()) { if (channel.isThread()) {
const fetchedMember = await channel.members.fetch('12345678'); const fetchedMember = await channel.members.fetch({ member: '12345678' });
expectType<ThreadMember>(fetchedMember); assertType<ThreadMember>(fetchedMember);
const fetchedMemberCol = await channel.members.fetch(true); const fetchedMemberCol = await channel.members.fetch(true);
expectDeprecated(await channel.members.fetch(true)); expectDeprecated(await channel.members.fetch(true));
expectType<Collection<Snowflake, ThreadMember>>(fetchedMemberCol); expectType<Collection<Snowflake, ThreadMember>>(fetchedMemberCol);