From 2f1b131b0f70bc923955261c57986e47d10627b2 Mon Sep 17 00:00:00 2001 From: Rory& Date: Sun, 28 Sep 2025 23:44:00 +0200 Subject: [PATCH] Add author and mentions relation to fetching messages --- src/api/routes/channels/#channel_id/messages/index.ts | 2 ++ src/util/util/extensions/Array.ts | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/api/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts index 96c760b1..3f297632 100644 --- a/src/api/routes/channels/#channel_id/messages/index.ts +++ b/src/api/routes/channels/#channel_id/messages/index.ts @@ -129,6 +129,8 @@ router.get( "sticker_items", "attachments", "referenced_message", + "referenced_message.author", + "referenced_message.mentions", ], }; diff --git a/src/util/util/extensions/Array.ts b/src/util/util/extensions/Array.ts index 84180347..f2a69840 100644 --- a/src/util/util/extensions/Array.ts +++ b/src/util/util/extensions/Array.ts @@ -21,6 +21,7 @@ declare global { containsAll(target: T[]): boolean; partition(filter: (elem: T) => boolean): [T[], T[]]; single(filter: (elem: T) => boolean): T | null; + forEachAsync(callback: (elem: T, index: number, array: T[]) => Promise): Promise; } } @@ -43,6 +44,10 @@ export function single(array: T[], filter: (elem: T) => boolean): T | null { return results[0]; } +export async function forEachAsync(array: T[], callback: (elem: T, index: number, array: T[]) => Promise): Promise { + await Promise.all(array.map(callback)); +} + // register extensions if (!Array.prototype.containsAll) Array.prototype.containsAll = function (this: T[], target: T[]) {