Mattermost: avoid raw fetch in monitor media download

This commit is contained in:
Shakker
2026-02-26 16:03:20 +00:00
parent 8a51891ed5
commit b044c149c1
2 changed files with 17 additions and 9 deletions

View File

@@ -63,7 +63,6 @@ export type MonitorMattermostOpts = {
webSocketFactory?: MattermostWebSocketFactory;
};
type FetchLike = (input: URL | RequestInfo, init?: RequestInit) => Promise<Response>;
type MediaKind = "image" | "audio" | "video" | "document" | "unknown";
type MattermostReaction = {
@@ -224,12 +223,6 @@ export async function monitorMattermostProvider(opts: MonitorMattermostOpts = {}
log: (message) => logVerboseMessage(message),
});
const fetchWithAuth: FetchLike = (input, init) => {
const headers = new Headers(init?.headers);
headers.set("Authorization", `Bearer ${client.token}`);
return fetch(input, { ...init, headers });
};
const resolveMattermostMedia = async (
fileIds?: string[] | null,
): Promise<MattermostMediaInfo[]> => {
@@ -242,7 +235,11 @@ export async function monitorMattermostProvider(opts: MonitorMattermostOpts = {}
try {
const fetched = await core.channel.media.fetchRemoteMedia({
url: `${client.apiBaseUrl}/files/${fileId}`,
fetchImpl: fetchWithAuth,
requestInit: {
headers: {
Authorization: `Bearer ${client.token}`,
},
},
filePathHint: fileId,
maxBytes: mediaMaxBytes,
});