Files
Moltbot/src/cli/deps.ts
2026-02-21 21:40:39 +00:00

53 lines
2.1 KiB
TypeScript

import type { sendMessageWhatsApp } from "../channels/web/index.js";
import type { sendMessageDiscord } from "../discord/send.js";
import type { sendMessageIMessage } from "../imessage/send.js";
import type { OutboundSendDeps } from "../infra/outbound/deliver.js";
import type { sendMessageSignal } from "../signal/send.js";
import type { sendMessageSlack } from "../slack/send.js";
import type { sendMessageTelegram } from "../telegram/send.js";
import { createOutboundSendDepsFromCliSource } from "./outbound-send-mapping.js";
export type CliDeps = {
sendMessageWhatsApp: typeof sendMessageWhatsApp;
sendMessageTelegram: typeof sendMessageTelegram;
sendMessageDiscord: typeof sendMessageDiscord;
sendMessageSlack: typeof sendMessageSlack;
sendMessageSignal: typeof sendMessageSignal;
sendMessageIMessage: typeof sendMessageIMessage;
};
export function createDefaultDeps(): CliDeps {
return {
sendMessageWhatsApp: async (...args) => {
const { sendMessageWhatsApp } = await import("../channels/web/index.js");
return await sendMessageWhatsApp(...args);
},
sendMessageTelegram: async (...args) => {
const { sendMessageTelegram } = await import("../telegram/send.js");
return await sendMessageTelegram(...args);
},
sendMessageDiscord: async (...args) => {
const { sendMessageDiscord } = await import("../discord/send.js");
return await sendMessageDiscord(...args);
},
sendMessageSlack: async (...args) => {
const { sendMessageSlack } = await import("../slack/send.js");
return await sendMessageSlack(...args);
},
sendMessageSignal: async (...args) => {
const { sendMessageSignal } = await import("../signal/send.js");
return await sendMessageSignal(...args);
},
sendMessageIMessage: async (...args) => {
const { sendMessageIMessage } = await import("../imessage/send.js");
return await sendMessageIMessage(...args);
},
};
}
export function createOutboundSendDeps(deps: CliDeps): OutboundSendDeps {
return createOutboundSendDepsFromCliSource(deps);
}
export { logWebSelfId } from "../web/auth-store.js";