From 2b2c3a071b5e9052d024b66964940d1d088425fe Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 16 Feb 2026 00:46:18 +0000 Subject: [PATCH] refactor(imessage): dedupe outbound media limit resolve --- src/channels/plugins/outbound/imessage.ts | 29 ++++++++++++----------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/channels/plugins/outbound/imessage.ts b/src/channels/plugins/outbound/imessage.ts index 8aab8c5f916..13d79849f12 100644 --- a/src/channels/plugins/outbound/imessage.ts +++ b/src/channels/plugins/outbound/imessage.ts @@ -3,6 +3,19 @@ import { chunkText } from "../../../auto-reply/chunk.js"; import { sendMessageIMessage } from "../../../imessage/send.js"; import { resolveChannelMediaMaxBytes } from "../media-limits.js"; +function resolveIMessageMaxBytes(params: { + cfg: Parameters[0]["cfg"]; + accountId?: string | null; +}) { + return resolveChannelMediaMaxBytes({ + cfg: params.cfg, + resolveChannelLimitMb: ({ cfg, accountId }) => + cfg.channels?.imessage?.accounts?.[accountId]?.mediaMaxMb ?? + cfg.channels?.imessage?.mediaMaxMb, + accountId: params.accountId, + }); +} + export const imessageOutbound: ChannelOutboundAdapter = { deliveryMode: "direct", chunker: chunkText, @@ -10,13 +23,7 @@ export const imessageOutbound: ChannelOutboundAdapter = { textChunkLimit: 4000, sendText: async ({ cfg, to, text, accountId, deps }) => { const send = deps?.sendIMessage ?? sendMessageIMessage; - const maxBytes = resolveChannelMediaMaxBytes({ - cfg, - resolveChannelLimitMb: ({ cfg, accountId }) => - cfg.channels?.imessage?.accounts?.[accountId]?.mediaMaxMb ?? - cfg.channels?.imessage?.mediaMaxMb, - accountId, - }); + const maxBytes = resolveIMessageMaxBytes({ cfg, accountId }); const result = await send(to, text, { maxBytes, accountId: accountId ?? undefined, @@ -25,13 +32,7 @@ export const imessageOutbound: ChannelOutboundAdapter = { }, sendMedia: async ({ cfg, to, text, mediaUrl, mediaLocalRoots, accountId, deps }) => { const send = deps?.sendIMessage ?? sendMessageIMessage; - const maxBytes = resolveChannelMediaMaxBytes({ - cfg, - resolveChannelLimitMb: ({ cfg, accountId }) => - cfg.channels?.imessage?.accounts?.[accountId]?.mediaMaxMb ?? - cfg.channels?.imessage?.mediaMaxMb, - accountId, - }); + const maxBytes = resolveIMessageMaxBytes({ cfg, accountId }); const result = await send(to, text, { mediaUrl, maxBytes,