From 36271b0050e7ba4c5c99d55cf4f2347743a87678 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Mon, 25 Oct 2021 19:21:41 -0400 Subject: [PATCH 01/21] feat(ThreadMemberManager): allow individual members to be fetched --- src/managers/ThreadMemberManager.js | 26 +++++++++++++++++++++----- typings/index.d.ts | 1 + typings/tests.ts | 10 +++++++++- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index deff230d7974..b605823cb9f7 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -92,16 +92,32 @@ class ThreadMemberManager extends CachedManager { return id; } + async _fetchId(memberId, cache, force) { + if (!force) { + const existing = this.cache.get(memberId); + if (existing) return existing; + } + + const data = await this.client.api.channels(this.thread.id, 'thread-members', memberId).get(); + return this._add(data, cache); + } + /** * Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent. - * @param {boolean} [cache=true] Whether or not to cache the fetched members - * @returns {Promise>} + * @param {Snowflake} member The member to fetch. + * @param {boolean} [cache=true] Whether or not to cache the fetched members. + * @param {boolean} [force=true] Whether or not to force fetch the members. + * @returns {Promise>} */ - async fetch(cache = true) { + async fetch(member, cache = true, force = false) { + if (typeof member === 'string') { + return this._fetchId(member, cache, force); + } + const raw = await this.client.api.channels(this.thread.id, 'thread-members').get(); return raw.reduce((col, rawMember) => { - const member = this._add(rawMember, cache); - return col.set(member.id, member); + const colMember = this._add(rawMember, cache); + return col.set(colMember.id, colMember); }, new Collection()); } } diff --git a/typings/index.d.ts b/typings/index.d.ts index b934dabae539..e74f0d1df6d2 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2897,6 +2897,7 @@ export class ThreadMemberManager extends CachedManager); public thread: ThreadChannel; public add(member: UserResolvable | '@me', reason?: string): Promise; + public fetch(member: Snowflake, cache?: boolean): Promise; public fetch(cache?: boolean): Promise>; public remove(id: Snowflake | '@me', reason?: string): Promise; } diff --git a/typings/tests.ts b/typings/tests.ts index 8e5b260ca08e..b593cbc99265 100644 --- a/typings/tests.ts +++ b/typings/tests.ts @@ -70,6 +70,7 @@ import { TextBasedChannels, TextChannel, ThreadChannel, + ThreadMember, Typing, User, VoiceChannel, @@ -434,10 +435,17 @@ client.on('ready', async () => { // This is to check that stuff is the right type declare const assertIsPromiseMember: (m: Promise) => void; -client.on('guildCreate', g => { +client.on('guildCreate', async g => { const channel = g.channels.cache.random(); if (!channel) return; + if (channel.isThread()) { + const fetchedMember = await channel.members.fetch('12345678'); + assertType(fetchedMember); + const fetchedMemberCol = await channel.members.fetch(true); + assertType>(fetchedMemberCol); + } + channel.setName('foo').then(updatedChannel => { console.log(`New channel name: ${updatedChannel.name}`); }); From 1cfe884da07a217654e822f4ad48936a506d0002 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Mon, 25 Oct 2021 23:49:55 -0400 Subject: [PATCH 02/21] chore: clean up definitions --- src/managers/ThreadMemberManager.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index b605823cb9f7..16514bf40a05 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -98,10 +98,19 @@ class ThreadMemberManager extends CachedManager { if (existing) return existing; } + console.log('already cached'); + const data = await this.client.api.channels(this.thread.id, 'thread-members', memberId).get(); return this._add(data, cache); } + async _fetchMany(cache) { + const data = await this.client.api.channels(this.thread.id, 'thread-members').get(); + const members = new Collection(); + for (const member of data) members.set(member.id, this._add(member, cache)); + return members; + } + /** * Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent. * @param {Snowflake} member The member to fetch. @@ -109,16 +118,8 @@ class ThreadMemberManager extends CachedManager { * @param {boolean} [force=true] Whether or not to force fetch the members. * @returns {Promise>} */ - async fetch(member, cache = true, force = false) { - if (typeof member === 'string') { - return this._fetchId(member, cache, force); - } - - const raw = await this.client.api.channels(this.thread.id, 'thread-members').get(); - return raw.reduce((col, rawMember) => { - const colMember = this._add(rawMember, cache); - return col.set(colMember.id, colMember); - }, new Collection()); + fetch(member, cache = true, force = false) { + return typeof member === 'string' ? this._fetchId(member, cache, force) : this._fetchMany(cache); } } From 34fc819379d469d99f497ef2bc93d916e6a80b1e Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 00:05:57 -0400 Subject: [PATCH 03/21] fix: boolean bug --- src/managers/ThreadMemberManager.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index 16514bf40a05..65ea080fc4a4 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -98,13 +98,14 @@ class ThreadMemberManager extends CachedManager { if (existing) return existing; } - console.log('already cached'); + console.log(cache); const data = await this.client.api.channels(this.thread.id, 'thread-members', memberId).get(); return this._add(data, cache); } async _fetchMany(cache) { + console.log(`thing${cache}`); const data = await this.client.api.channels(this.thread.id, 'thread-members').get(); const members = new Collection(); for (const member of data) members.set(member.id, this._add(member, cache)); @@ -119,7 +120,7 @@ class ThreadMemberManager extends CachedManager { * @returns {Promise>} */ fetch(member, cache = true, force = false) { - return typeof member === 'string' ? this._fetchId(member, cache, force) : this._fetchMany(cache); + return typeof member === 'string' ? this._fetchId(member, cache, force) : this._fetchMany(member); } } From 04d67a8fd4b7ca446d28997f8fbfd4bb7fcc1ed6 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 00:50:06 -0400 Subject: [PATCH 04/21] fix: reduce fetch many lines --- src/managers/ThreadMemberManager.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index 65ea080fc4a4..ca77a304803e 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -98,18 +98,16 @@ class ThreadMemberManager extends CachedManager { if (existing) return existing; } - console.log(cache); - const data = await this.client.api.channels(this.thread.id, 'thread-members', memberId).get(); return this._add(data, cache); } async _fetchMany(cache) { - console.log(`thing${cache}`); - const data = await this.client.api.channels(this.thread.id, 'thread-members').get(); - const members = new Collection(); - for (const member of data) members.set(member.id, this._add(member, cache)); - return members; + const raw = await this.client.api.channels(this.thread.id, 'thread-members').get(); + return raw.reduce((col, rawMember) => { + const member = this._add(rawMember, cache); + return col.set(member.id, member); + }, new Collection()); } /** From f7690b00d2a57a90a32a84e3dee99d5b9ae62ce3 Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Tue, 26 Oct 2021 00:51:14 -0400 Subject: [PATCH 05/21] Update src/managers/ThreadMemberManager.js Co-authored-by: ckohen --- src/managers/ThreadMemberManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index ca77a304803e..1c38648cd7ec 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -117,7 +117,7 @@ class ThreadMemberManager extends CachedManager { * @param {boolean} [force=true] Whether or not to force fetch the members. * @returns {Promise>} */ - fetch(member, cache = true, force = false) { + fetch(member, { cache = true, force = false } = {}) { return typeof member === 'string' ? this._fetchId(member, cache, force) : this._fetchMany(member); } } From 1162b5cb35d30075ee816bcd16930c53cd07fea8 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 01:00:57 -0400 Subject: [PATCH 06/21] docs: improve docs for member --- src/managers/ThreadMemberManager.js | 9 ++++++--- typings/index.d.ts | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index 1c38648cd7ec..cb2aea4327ac 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -112,12 +112,15 @@ class ThreadMemberManager extends CachedManager { /** * Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent. - * @param {Snowflake} member The member to fetch. - * @param {boolean} [cache=true] Whether or not to cache the fetched members. - * @param {boolean} [force=true] Whether or not to force fetch the members. + * @param {Snowflake?} member The member to fetch, if `undefined` `options.cached` is + * `true` and all members in the thread are fetched. If boolean, this serves the purpose + * of `options.cache`. + * @param {BaseFetchOptions} [options] Additional options for this fetch + * @param {boolean} [force=true] Whether or not to force fetch the members * @returns {Promise>} */ fetch(member, { cache = true, force = false } = {}) { + // TODO: Replace `member` usages as `cache` with correct respective parameter. return typeof member === 'string' ? this._fetchId(member, cache, force) : this._fetchMany(member); } } diff --git a/typings/index.d.ts b/typings/index.d.ts index e74f0d1df6d2..d7599f72801f 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2897,7 +2897,7 @@ export class ThreadMemberManager extends CachedManager); public thread: ThreadChannel; public add(member: UserResolvable | '@me', reason?: string): Promise; - public fetch(member: Snowflake, cache?: boolean): Promise; + public fetch(member: Snowflake, options?: BaseFetchOptions): Promise; public fetch(cache?: boolean): Promise>; public remove(id: Snowflake | '@me', reason?: string): Promise; } From ca49f04f538dbc2387df9bacf70ea6e8ededa52a Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:13:19 -0400 Subject: [PATCH 07/21] Update src/managers/ThreadMemberManager.js Co-authored-by: ckohen --- src/managers/ThreadMemberManager.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index cb2aea4327ac..f7ba940e9686 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -116,7 +116,6 @@ class ThreadMemberManager extends CachedManager { * `true` and all members in the thread are fetched. If boolean, this serves the purpose * of `options.cache`. * @param {BaseFetchOptions} [options] Additional options for this fetch - * @param {boolean} [force=true] Whether or not to force fetch the members * @returns {Promise>} */ fetch(member, { cache = true, force = false } = {}) { From efa200160e2c2bfc077407da0ad1bc13b0bfe19b Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 01:16:47 -0400 Subject: [PATCH 08/21] fix: code suggestion --- src/managers/ThreadMemberManager.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index f7ba940e9686..a7fc741c0de7 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -104,10 +104,7 @@ class ThreadMemberManager extends CachedManager { async _fetchMany(cache) { const raw = await this.client.api.channels(this.thread.id, 'thread-members').get(); - return raw.reduce((col, rawMember) => { - const member = this._add(rawMember, cache); - return col.set(member.id, member); - }, new Collection()); + return raw.reduce((col, member) => col.set(member.id, this._add(member, cache)), new Collection()); } /** From 48b02194fef0a87efc4868cb3949bbd64d460153 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 09:55:13 -0400 Subject: [PATCH 09/21] types: use UserResolvable as parameter type --- src/managers/ThreadMemberManager.js | 10 ++++++++-- typings/index.d.ts | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index a7fc741c0de7..b6d8970014c8 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -109,7 +109,7 @@ class ThreadMemberManager extends CachedManager { /** * Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent. - * @param {Snowflake?} member The member to fetch, if `undefined` `options.cached` is + * @param {UserResolvable?} member The member to fetch, if `undefined` `options.cached` is * `true` and all members in the thread are fetched. If boolean, this serves the purpose * of `options.cache`. * @param {BaseFetchOptions} [options] Additional options for this fetch @@ -117,7 +117,13 @@ class ThreadMemberManager extends CachedManager { */ fetch(member, { cache = true, force = false } = {}) { // TODO: Replace `member` usages as `cache` with correct respective parameter. - return typeof member === 'string' ? this._fetchId(member, cache, force) : this._fetchMany(member); + if (typeof member === 'string') { + return this._fetchId(member, cache, force); + } else if (typeof member === 'object') { + return this._fetchId(member.id, cache, force); + } + + return this._fetchMany(member); } } diff --git a/typings/index.d.ts b/typings/index.d.ts index d7599f72801f..37242fa25e2f 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2897,7 +2897,7 @@ export class ThreadMemberManager extends CachedManager); public thread: ThreadChannel; public add(member: UserResolvable | '@me', reason?: string): Promise; - public fetch(member: Snowflake, options?: BaseFetchOptions): Promise; + public fetch(member: UserResolvable, options?: BaseFetchOptions): Promise; public fetch(cache?: boolean): Promise>; public remove(id: Snowflake | '@me', reason?: string): Promise; } From 900dde2cda44d9519af513cf217dec438010b8b7 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 09:57:21 -0400 Subject: [PATCH 10/21] types: fix optional type --- src/managers/ThreadMemberManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index b6d8970014c8..0e4f0e9b3227 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -109,7 +109,7 @@ class ThreadMemberManager extends CachedManager { /** * Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent. - * @param {UserResolvable?} member The member to fetch, if `undefined` `options.cached` is + * @param {?UserResolvable} member The member to fetch, if `undefined` `options.cached` is * `true` and all members in the thread are fetched. If boolean, this serves the purpose * of `options.cache`. * @param {BaseFetchOptions} [options] Additional options for this fetch From 704e7053261f29a4653eb2d57c38e5a7dda1405a Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 10:06:49 -0400 Subject: [PATCH 11/21] docs: mark old fetch as deprecated --- typings/index.d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/typings/index.d.ts b/typings/index.d.ts index 37242fa25e2f..ca68291a0f9d 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2898,6 +2898,9 @@ export class ThreadMemberManager extends CachedManager; public fetch(member: UserResolvable, options?: BaseFetchOptions): Promise; + /** + * @deprecated Use fetch(member, options) instead. + */ public fetch(cache?: boolean): Promise>; public remove(id: Snowflake | '@me', reason?: string): Promise; } From e1b653c151a30f7a3f4013bb5388c6ddba263d90 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 10:12:07 -0400 Subject: [PATCH 12/21] docs: use one line jsdoc --- typings/index.d.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index ca68291a0f9d..9f686ab7424a 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2898,9 +2898,7 @@ export class ThreadMemberManager extends CachedManager; public fetch(member: UserResolvable, options?: BaseFetchOptions): Promise; - /** - * @deprecated Use fetch(member, options) instead. - */ + /** @deprecated Use `fetch(member, options)` instead. */ public fetch(cache?: boolean): Promise>; public remove(id: Snowflake | '@me', reason?: string): Promise; } From 652fcfa407933f1f4a5cdb4ccd011bdc4a40151e Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Tue, 26 Oct 2021 12:34:03 -0400 Subject: [PATCH 13/21] Update src/managers/ThreadMemberManager.js Co-authored-by: Vlad Frangu --- src/managers/ThreadMemberManager.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index 0e4f0e9b3227..ba64407f1695 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -109,9 +109,9 @@ class ThreadMemberManager extends CachedManager { /** * Fetches member(s) for the thread from Discord, requires access to the `GUILD_MEMBERS` gateway intent. - * @param {?UserResolvable} member The member to fetch, if `undefined` `options.cached` is - * `true` and all members in the thread are fetched. If boolean, this serves the purpose - * of `options.cache`. + * @param {UserResolvable|boolean} [member] The member to fetch. If `undefined`, all members + * in the thread are fetched, and will be cached based on `options.cache`. If boolean, this serves + * the purpose of `options.cache`. * @param {BaseFetchOptions} [options] Additional options for this fetch * @returns {Promise>} */ From 5c4a43e255a30476bf6c8552df75711f24880f5c Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Tue, 26 Oct 2021 12:34:22 -0400 Subject: [PATCH 14/21] Update typings/index.d.ts Co-authored-by: Vlad Frangu --- typings/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index 9f686ab7424a..b746461635f5 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2897,7 +2897,7 @@ export class ThreadMemberManager extends CachedManager); public thread: ThreadChannel; public add(member: UserResolvable | '@me', reason?: string): Promise; - public fetch(member: UserResolvable, options?: BaseFetchOptions): Promise; + public fetch(member?: UserResolvable, options?: BaseFetchOptions): Promise; /** @deprecated Use `fetch(member, options)` instead. */ public fetch(cache?: boolean): Promise>; public remove(id: Snowflake | '@me', reason?: string): Promise; From b76b1e3b73b49b7374d16e392c58ae292e622955 Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Tue, 26 Oct 2021 12:37:26 -0400 Subject: [PATCH 15/21] Update src/managers/ThreadMemberManager.js Co-authored-by: Vlad Frangu --- src/managers/ThreadMemberManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index ba64407f1695..bca567e6c5eb 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -123,7 +123,7 @@ class ThreadMemberManager extends CachedManager { return this._fetchId(member.id, cache, force); } - return this._fetchMany(member); + return this._fetchMany(member ?? cache); } } From 62a25f9f4b01dd3904ea5e3ccbdaf4d42a8ddd9b Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni Date: Tue, 26 Oct 2021 12:41:54 -0400 Subject: [PATCH 16/21] chore: fix linting issues --- src/managers/ThreadMemberManager.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index bca567e6c5eb..f305da2bcde7 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -109,8 +109,8 @@ class ThreadMemberManager extends CachedManager { /** * 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 - * in the thread are fetched, and will be cached based on `options.cache`. If boolean, this serves + * @param {UserResolvable|boolean} [member] The member to fetch. If `undefined`, all members + * in the thread are fetched, and will be cached based on `options.cache`. If boolean, this serves * the purpose of `options.cache`. * @param {BaseFetchOptions} [options] Additional options for this fetch * @returns {Promise>} From 9c54d05fefffc94677a42c0a2bd29266d94ee839 Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni Date: Tue, 26 Oct 2021 12:42:23 -0400 Subject: [PATCH 17/21] fix: typeof check --- src/managers/ThreadMemberManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index f305da2bcde7..000ed84a0ca5 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -119,7 +119,7 @@ class ThreadMemberManager extends CachedManager { // TODO: Replace `member` usages as `cache` with correct respective parameter. if (typeof member === 'string') { return this._fetchId(member, cache, force); - } else if (typeof member === 'object') { + } else if (member && typeof member === 'object') { return this._fetchId(member.id, cache, force); } From 3d8ebffa4bd510417ea2227de12b6349a4735bb6 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Tue, 26 Oct 2021 13:18:38 -0400 Subject: [PATCH 18/21] chore: bump builders --- package-lock.json | 46 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index c54d5c3f5073..75ec16e2f060 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "13.3.0-dev", "license": "Apache-2.0", "dependencies": { - "@discordjs/builders": "^0.6.0", + "@discordjs/builders": "^0.7.0", "@discordjs/collection": "^0.2.1", "@discordjs/form-data": "^3.0.1", "@sapphire/async-queue": "^1.1.5", @@ -1010,12 +1010,12 @@ } }, "node_modules/@discordjs/builders": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz", - "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.7.0.tgz", + "integrity": "sha512-0dnRH5ABy6DfyPU+gYeIE16P6+fnc9BSK53r0/jCe0aJiBQIVLcPrA7r/5vBV0MaoQOeuhlRQ2vwoawABDkn5w==", "dependencies": { - "@sindresorhus/is": "^4.0.1", - "discord-api-types": "^0.22.0", + "@sindresorhus/is": "^4.2.0", + "discord-api-types": "^0.24.0", "ow": "^0.27.0", "ts-mixer": "^6.0.0", "tslib": "^2.3.1" @@ -1026,9 +1026,9 @@ } }, "node_modules/@discordjs/builders/node_modules/discord-api-types": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", - "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", + "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==", "engines": { "node": ">=12" } @@ -2181,9 +2181,9 @@ } }, "node_modules/@sindresorhus/is": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", - "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", "engines": { "node": ">=10" }, @@ -13002,21 +13002,21 @@ } }, "@discordjs/builders": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz", - "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.7.0.tgz", + "integrity": "sha512-0dnRH5ABy6DfyPU+gYeIE16P6+fnc9BSK53r0/jCe0aJiBQIVLcPrA7r/5vBV0MaoQOeuhlRQ2vwoawABDkn5w==", "requires": { - "@sindresorhus/is": "^4.0.1", - "discord-api-types": "^0.22.0", + "@sindresorhus/is": "^4.2.0", + "discord-api-types": "^0.24.0", "ow": "^0.27.0", "ts-mixer": "^6.0.0", "tslib": "^2.3.1" }, "dependencies": { "discord-api-types": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", - "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==" + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", + "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==" }, "tslib": { "version": "2.3.1", @@ -13909,9 +13909,9 @@ "dev": true }, "@sindresorhus/is": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", - "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" }, "@sinonjs/commons": { "version": "1.8.3", diff --git a/package.json b/package.json index f35cdfa5194f..1b8a6ff8b14a 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ }, "homepage": "https://discord.js.org", "dependencies": { - "@discordjs/builders": "^0.6.0", + "@discordjs/builders": "^0.7.0", "@discordjs/collection": "^0.2.1", "@discordjs/form-data": "^3.0.1", "@sapphire/async-queue": "^1.1.5", From 841803e1e6386eb7b41da4acf1186a066f5ed48e Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Wed, 27 Oct 2021 07:51:00 -0400 Subject: [PATCH 19/21] Update src/managers/ThreadMemberManager.js Co-authored-by: SpaceEEC --- src/managers/ThreadMemberManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index 000ed84a0ca5..bf2ee8c50f07 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -104,7 +104,7 @@ class ThreadMemberManager extends CachedManager { async _fetchMany(cache) { const raw = await this.client.api.channels(this.thread.id, 'thread-members').get(); - return raw.reduce((col, member) => col.set(member.id, this._add(member, cache)), new Collection()); + return raw.reduce((col, member) => col.set(member.user_id, this._add(member, cache)), new Collection()); } /** From 780b9df8dfa3e0bd49ccdd0a04da8e38b48ada34 Mon Sep 17 00:00:00 2001 From: suneettipirneni Date: Thu, 28 Oct 2021 22:12:22 -0400 Subject: [PATCH 20/21] fix: make requested changes --- src/managers/ThreadMemberManager.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index bf2ee8c50f07..b4a21b64d70b 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -92,7 +92,7 @@ class ThreadMemberManager extends CachedManager { return id; } - async _fetchId(memberId, cache, force) { + async _fetchOne(memberId, cache, force) { if (!force) { const existing = this.cache.get(memberId); if (existing) return existing; @@ -117,10 +117,9 @@ class ThreadMemberManager extends CachedManager { */ fetch(member, { cache = true, force = false } = {}) { // TODO: Replace `member` usages as `cache` with correct respective parameter. - if (typeof member === 'string') { - return this._fetchId(member, cache, force); - } else if (member && typeof member === 'object') { - return this._fetchId(member.id, cache, force); + if (typeof member !== 'boolean') { + const ID = this.resolveId(member); + return this._fetchOne(ID, cache, force); } return this._fetchMany(member ?? cache); From 4c17082af9df682be4a4dedbe6b8107c4ad1d5b8 Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Fri, 29 Oct 2021 07:12:09 -0400 Subject: [PATCH 21/21] Update src/managers/ThreadMemberManager.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Antonio Román --- src/managers/ThreadMemberManager.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/managers/ThreadMemberManager.js b/src/managers/ThreadMemberManager.js index b4a21b64d70b..ce6988e5cb2a 100644 --- a/src/managers/ThreadMemberManager.js +++ b/src/managers/ThreadMemberManager.js @@ -116,13 +116,8 @@ class ThreadMemberManager extends CachedManager { * @returns {Promise>} */ fetch(member, { cache = true, force = false } = {}) { - // TODO: Replace `member` usages as `cache` with correct respective parameter. - if (typeof member !== 'boolean') { - const ID = this.resolveId(member); - return this._fetchOne(ID, cache, force); - } - - return this._fetchMany(member ?? cache); + const id = this.resolveId(member); + return id ? this._fetchOne(id, cache, force) : this._fetchMany(member ?? cache); } }