refactor(signal): dedupe outbound media limit resolve

This commit is contained in:
Peter Steinberger
2026-02-16 00:47:19 +00:00
parent 2b2c3a071b
commit d00adfe98c

View File

@@ -3,6 +3,18 @@ import { chunkText } from "../../../auto-reply/chunk.js";
import { sendMessageSignal } from "../../../signal/send.js"; import { sendMessageSignal } from "../../../signal/send.js";
import { resolveChannelMediaMaxBytes } from "../media-limits.js"; import { resolveChannelMediaMaxBytes } from "../media-limits.js";
function resolveSignalMaxBytes(params: {
cfg: Parameters<typeof resolveChannelMediaMaxBytes>[0]["cfg"];
accountId?: string | null;
}) {
return resolveChannelMediaMaxBytes({
cfg: params.cfg,
resolveChannelLimitMb: ({ cfg, accountId }) =>
cfg.channels?.signal?.accounts?.[accountId]?.mediaMaxMb ?? cfg.channels?.signal?.mediaMaxMb,
accountId: params.accountId,
});
}
export const signalOutbound: ChannelOutboundAdapter = { export const signalOutbound: ChannelOutboundAdapter = {
deliveryMode: "direct", deliveryMode: "direct",
chunker: chunkText, chunker: chunkText,
@@ -10,12 +22,7 @@ export const signalOutbound: ChannelOutboundAdapter = {
textChunkLimit: 4000, textChunkLimit: 4000,
sendText: async ({ cfg, to, text, accountId, deps }) => { sendText: async ({ cfg, to, text, accountId, deps }) => {
const send = deps?.sendSignal ?? sendMessageSignal; const send = deps?.sendSignal ?? sendMessageSignal;
const maxBytes = resolveChannelMediaMaxBytes({ const maxBytes = resolveSignalMaxBytes({ cfg, accountId });
cfg,
resolveChannelLimitMb: ({ cfg, accountId }) =>
cfg.channels?.signal?.accounts?.[accountId]?.mediaMaxMb ?? cfg.channels?.signal?.mediaMaxMb,
accountId,
});
const result = await send(to, text, { const result = await send(to, text, {
maxBytes, maxBytes,
accountId: accountId ?? undefined, accountId: accountId ?? undefined,
@@ -24,12 +31,7 @@ export const signalOutbound: ChannelOutboundAdapter = {
}, },
sendMedia: async ({ cfg, to, text, mediaUrl, mediaLocalRoots, accountId, deps }) => { sendMedia: async ({ cfg, to, text, mediaUrl, mediaLocalRoots, accountId, deps }) => {
const send = deps?.sendSignal ?? sendMessageSignal; const send = deps?.sendSignal ?? sendMessageSignal;
const maxBytes = resolveChannelMediaMaxBytes({ const maxBytes = resolveSignalMaxBytes({ cfg, accountId });
cfg,
resolveChannelLimitMb: ({ cfg, accountId }) =>
cfg.channels?.signal?.accounts?.[accountId]?.mediaMaxMb ?? cfg.channels?.signal?.mediaMaxMb,
accountId,
});
const result = await send(to, text, { const result = await send(to, text, {
mediaUrl, mediaUrl,
maxBytes, maxBytes,