mirror of https://github.com/openclaw/openclaw.git
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import type { OutboundSendDeps } from "../infra/outbound/deliver.js";
|
|
|
|
/**
|
|
* CLI-internal send function sources, keyed by channel ID.
|
|
* Each value is a lazily-loaded send function for that channel.
|
|
*/
|
|
export type CliOutboundSendSource = { [channelId: string]: unknown };
|
|
|
|
const LEGACY_SOURCE_TO_CHANNEL = {
|
|
sendMessageWhatsApp: "whatsapp",
|
|
sendMessageTelegram: "telegram",
|
|
sendMessageDiscord: "discord",
|
|
sendMessageSlack: "slack",
|
|
sendMessageSignal: "signal",
|
|
sendMessageIMessage: "imessage",
|
|
} as const;
|
|
|
|
const CHANNEL_TO_LEGACY_DEP_KEY = {
|
|
whatsapp: "sendWhatsApp",
|
|
telegram: "sendTelegram",
|
|
discord: "sendDiscord",
|
|
slack: "sendSlack",
|
|
signal: "sendSignal",
|
|
imessage: "sendIMessage",
|
|
} as const;
|
|
|
|
/**
|
|
* Pass CLI send sources through as-is — both CliOutboundSendSource and
|
|
* OutboundSendDeps are now channel-ID-keyed records.
|
|
*/
|
|
export function createOutboundSendDepsFromCliSource(deps: CliOutboundSendSource): OutboundSendDeps {
|
|
const outbound: OutboundSendDeps = { ...deps };
|
|
|
|
for (const [legacySourceKey, channelId] of Object.entries(LEGACY_SOURCE_TO_CHANNEL)) {
|
|
const sourceValue = deps[legacySourceKey];
|
|
if (sourceValue !== undefined && outbound[channelId] === undefined) {
|
|
outbound[channelId] = sourceValue;
|
|
}
|
|
}
|
|
|
|
for (const [channelId, legacyDepKey] of Object.entries(CHANNEL_TO_LEGACY_DEP_KEY)) {
|
|
const sourceValue = outbound[channelId];
|
|
if (sourceValue !== undefined && outbound[legacyDepKey] === undefined) {
|
|
outbound[legacyDepKey] = sourceValue;
|
|
}
|
|
}
|
|
|
|
return outbound;
|
|
}
|