From 1d35554c40ed6294a0100fd15f748e4480fe5aef Mon Sep 17 00:00:00 2001 From: "salagiannis.j" Date: Fri, 15 Sep 2023 00:41:03 +0300 Subject: [PATCH 1/3] Remove a request from UserdetailsQueue when its resolved, fix a type declaration for getUserDetails --- classes/user.d.ts | 2 +- client.d.ts | 2 +- client.js | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/classes/user.d.ts b/classes/user.d.ts index a6907d6..39578a2 100644 --- a/classes/user.d.ts +++ b/classes/user.d.ts @@ -13,7 +13,7 @@ export default class User { autoconfirmed: boolean; status?: string; alts: string[]; - rooms: { [key: string]: { isPrivate?: true } }; + rooms: { [key: string]: { isPrivate?: true } } | false; parent: Client; diff --git a/client.d.ts b/client.d.ts index 7955660..4205d5e 100644 --- a/client.d.ts +++ b/client.d.ts @@ -128,7 +128,7 @@ export class Client extends events.EventEmitter { * @param user - The user being queried * @returns A promise that resolves with the queried userdetails */ - getUserDetails (userid: string): Promise; + getUserDetails (userid: string): Promise; /** * Gets a (cached) room from its name (aliases not supported) diff --git a/client.js b/client.js index f08d9bf..c45cdb6 100644 --- a/client.js +++ b/client.js @@ -372,7 +372,10 @@ class Client extends EventEmitter { if (!userdetails) break; this.addUser(userdetails); const user = this._userdetailsQueue.find(u => u.id === userdetails.id); - if (user) user.resolve(userdetails); + if (user) { + user.resolve(userdetails); + this._userdetailsQueue.splice(this._userdetailsQueue.indexOf(user), 1); + } break; } } From 64ad696da2f3299f364509fbfb915470b0b79753 Mon Sep 17 00:00:00 2001 From: PartMan Date: Sat, 16 Sep 2023 14:01:46 +0530 Subject: [PATCH 2/3] Update typings and fix lint --- client.d.ts | 6 ++++-- client.js | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/client.d.ts b/client.d.ts index 4205d5e..4f34120 100644 --- a/client.d.ts +++ b/client.d.ts @@ -3,6 +3,8 @@ import type Message from './classes/message.d.ts'; import type Room from './classes/room.d.ts'; import type User from './classes/user.d.ts'; +type UserDetails = { userid: string, [key: string]: any }; + type ClientOpts = { username: string, password?: string, @@ -114,7 +116,7 @@ export class Client extends events.EventEmitter { * @param details - The details of the user to add * @returns The added User */ - addUser (details: { userid: string, [key: string]: any }): User; + addUser (details: UserDetails): User; /** * Gets the specified user (or their current user, if they were seen on an alt) @@ -128,7 +130,7 @@ export class Client extends events.EventEmitter { * @param user - The user being queried * @returns A promise that resolves with the queried userdetails */ - getUserDetails (userid: string): Promise; + getUserDetails (userid: string): Promise; /** * Gets a (cached) room from its name (aliases not supported) diff --git a/client.js b/client.js index c45cdb6..ada9112 100644 --- a/client.js +++ b/client.js @@ -372,10 +372,10 @@ class Client extends EventEmitter { if (!userdetails) break; this.addUser(userdetails); const user = this._userdetailsQueue.find(u => u.id === userdetails.id); - if (user) { - user.resolve(userdetails); - this._userdetailsQueue.splice(this._userdetailsQueue.indexOf(user), 1); - } + if (user) { + user.resolve(userdetails); + this._userdetailsQueue.splice(this._userdetailsQueue.indexOf(user), 1); + } break; } } From 66f432e2138ec74c3703bf743dea370c3d7eecac Mon Sep 17 00:00:00 2001 From: PartMan <47669599+PartMan7@users.noreply.github.com> Date: Sat, 16 Sep 2023 14:07:12 +0530 Subject: [PATCH 3/3] Tests: Increase connection timeout to 30s --- test/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/index.js b/test/index.js index 73b5fb3..bc26ac8 100644 --- a/test/index.js +++ b/test/index.js @@ -35,6 +35,7 @@ Bot.on('message', message => { describe('PS-Client', () => { before(function () { + this.timeout(30_000); return new Promise((resolve, reject) => { Bot.connect(); Bot.on('ready', () => resolve());