summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathMan05 <mathmanrm@gmail.com>2025-11-26 00:11:22 -0600
committerMathMan05 <mathmanrm@gmail.com>2025-11-26 00:11:22 -0600
commit3080445768d7fa710fa8371934e8b09110269f0b (patch)
treefff01e576dd88d06bbb830e2dc8ab5249e3d93e9
parentmake normalize URL normal (diff)
downloadserver-ts-3080445768d7fa710fa8371934e8b09110269f0b.tar.xz
rid of forEachAsync
-rw-r--r--src/api/routes/channels/#channel_id/messages/index.ts34
-rw-r--r--src/api/routes/guilds/#guild_id/invites.ts12
-rw-r--r--src/util/util/extensions/Array.ts10
3 files changed, 26 insertions, 30 deletions
diff --git a/src/api/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts

index d0d445b9..99523dab 100644 --- a/src/api/routes/channels/#channel_id/messages/index.ts +++ b/src/api/routes/channels/#channel_id/messages/index.ts
@@ -244,24 +244,28 @@ router.get( return x; }); - await ret - .filter((x: MessageCreateSchema) => x.interaction_metadata && !x.interaction_metadata.user) - .forEachAsync(async (x: MessageCreateSchema) => { - x.interaction_metadata!.user = x.interaction!.user = await User.findOneOrFail({ where: { id: (x as Message).interaction_metadata!.user_id } }); - }); + await Promise.all( + ret + .filter((x: MessageCreateSchema) => x.interaction_metadata && !x.interaction_metadata.user) + .map(async (x: MessageCreateSchema) => { + x.interaction_metadata!.user = x.interaction!.user = await User.findOneOrFail({ where: { id: (x as Message).interaction_metadata!.user_id } }); + }), + ); // polyfill message references for old messages - await ret - .filter((msg) => msg.message_reference && !msg.referenced_message?.id) - .forEachAsync(async (msg) => { - const whereOptions: { id: string; guild_id?: string; channel_id?: string } = { - id: msg.message_reference!.message_id, - }; - if (msg.message_reference!.guild_id) whereOptions.guild_id = msg.message_reference!.guild_id; - if (msg.message_reference!.channel_id) whereOptions.channel_id = msg.message_reference!.channel_id; + await Promise.all( + ret + .filter((msg) => msg.message_reference && !msg.referenced_message?.id) + .map(async (msg) => { + const whereOptions: { id: string; guild_id?: string; channel_id?: string } = { + id: msg.message_reference!.message_id, + }; + if (msg.message_reference!.guild_id) whereOptions.guild_id = msg.message_reference!.guild_id; + if (msg.message_reference!.channel_id) whereOptions.channel_id = msg.message_reference!.channel_id; - msg.referenced_message = await Message.findOne({ where: whereOptions, relations: ["author", "mentions", "mention_roles", "mention_channels"] }); - }); + msg.referenced_message = await Message.findOne({ where: whereOptions, relations: ["author", "mentions", "mention_roles", "mention_channels"] }); + }), + ); return res.json(ret); }, diff --git a/src/api/routes/guilds/#guild_id/invites.ts b/src/api/routes/guilds/#guild_id/invites.ts
index ec3116c9..9372651a 100644 --- a/src/api/routes/guilds/#guild_id/invites.ts +++ b/src/api/routes/guilds/#guild_id/invites.ts
@@ -40,11 +40,13 @@ router.get( relations: PublicInviteRelation, }); - await invites - .filter((i) => i.isExpired()) - .forEachAsync(async (i) => { - await Invite.delete({ code: i.code }); - }); + await Promise.all( + invites + .filter((i) => i.isExpired()) + .map(async (i) => { + await Invite.delete({ code: i.code }); + }), + ); return res.json(invites.filter((i) => !i.isExpired())); }, diff --git a/src/util/util/extensions/Array.ts b/src/util/util/extensions/Array.ts
index a4b1a899..74cceb76 100644 --- a/src/util/util/extensions/Array.ts +++ b/src/util/util/extensions/Array.ts
@@ -19,7 +19,6 @@ declare global { interface Array<T> { partition(filter: (elem: T) => boolean): [T[], T[]]; - forEachAsync(callback: (elem: T, index: number, array: T[]) => Promise<void>): Promise<void>; remove(item: T): void; distinct(): T[]; } @@ -33,10 +32,6 @@ export function arrayPartition<T>(array: T[], filter: (elem: T) => boolean): [T[ return [pass, fail]; } -export async function arrayForEachAsync<T>(array: T[], callback: (elem: T, index: number, array: T[]) => Promise<void>): Promise<void> { - await Promise.all(array.map(callback)); -} - export function arrayRemove<T>(this: T[], item: T): void { const index = this.indexOf(item); if (index > -1) { @@ -54,11 +49,6 @@ if (!Array.prototype.partition) return arrayPartition(this, filter); }; -if (!Array.prototype.forEachAsync) - Array.prototype.forEachAsync = function <T>(this: T[], callback: (elem: T, index: number, array: T[]) => Promise<void>) { - return arrayForEachAsync(this, callback); - }; - if (!Array.prototype.remove) Array.prototype.remove = function <T>(this: T[], item: T) { return arrayRemove.call(this, item);