build: fix ineffective dynamic imports with lazy boundaries (#33690)

Merged via squash.

Prepared head SHA: 38b3c23d6f8f2b4c8a36a88ee65b508102f1ec36
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
This commit is contained in:
Gustavo Madeira Santana
2026-03-03 20:14:41 -05:00
committed by GitHub
parent a4850b1b8f
commit 21e8d88c1d
31 changed files with 330 additions and 153 deletions

View File

@@ -0,0 +1 @@
export { sendMessageDiscord } from "../discord/send.js";

View File

@@ -0,0 +1 @@
export { sendMessageIMessage } from "../imessage/send.js";

View File

@@ -0,0 +1 @@
export { sendMessageSignal } from "../signal/send.js";

View File

@@ -0,0 +1 @@
export { sendMessageSlack } from "../slack/send.js";

View File

@@ -0,0 +1 @@
export { sendMessageTelegram } from "../telegram/send.js";

View File

@@ -0,0 +1 @@
export { sendMessageWhatsApp } from "../channels/web/index.js";

View File

@@ -16,30 +16,72 @@ export type CliDeps = {
sendMessageIMessage: typeof sendMessageIMessage;
};
let whatsappSenderRuntimePromise: Promise<typeof import("./deps-send-whatsapp.runtime.js")> | null =
null;
let telegramSenderRuntimePromise: Promise<typeof import("./deps-send-telegram.runtime.js")> | null =
null;
let discordSenderRuntimePromise: Promise<typeof import("./deps-send-discord.runtime.js")> | null =
null;
let slackSenderRuntimePromise: Promise<typeof import("./deps-send-slack.runtime.js")> | null = null;
let signalSenderRuntimePromise: Promise<typeof import("./deps-send-signal.runtime.js")> | null =
null;
let imessageSenderRuntimePromise: Promise<typeof import("./deps-send-imessage.runtime.js")> | null =
null;
function loadWhatsAppSenderRuntime() {
whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime.js");
return whatsappSenderRuntimePromise;
}
function loadTelegramSenderRuntime() {
telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime.js");
return telegramSenderRuntimePromise;
}
function loadDiscordSenderRuntime() {
discordSenderRuntimePromise ??= import("./deps-send-discord.runtime.js");
return discordSenderRuntimePromise;
}
function loadSlackSenderRuntime() {
slackSenderRuntimePromise ??= import("./deps-send-slack.runtime.js");
return slackSenderRuntimePromise;
}
function loadSignalSenderRuntime() {
signalSenderRuntimePromise ??= import("./deps-send-signal.runtime.js");
return signalSenderRuntimePromise;
}
function loadIMessageSenderRuntime() {
imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime.js");
return imessageSenderRuntimePromise;
}
export function createDefaultDeps(): CliDeps {
return {
sendMessageWhatsApp: async (...args) => {
const { sendMessageWhatsApp } = await import("../channels/web/index.js");
const { sendMessageWhatsApp } = await loadWhatsAppSenderRuntime();
return await sendMessageWhatsApp(...args);
},
sendMessageTelegram: async (...args) => {
const { sendMessageTelegram } = await import("../telegram/send.js");
const { sendMessageTelegram } = await loadTelegramSenderRuntime();
return await sendMessageTelegram(...args);
},
sendMessageDiscord: async (...args) => {
const { sendMessageDiscord } = await import("../discord/send.js");
const { sendMessageDiscord } = await loadDiscordSenderRuntime();
return await sendMessageDiscord(...args);
},
sendMessageSlack: async (...args) => {
const { sendMessageSlack } = await import("../slack/send.js");
const { sendMessageSlack } = await loadSlackSenderRuntime();
return await sendMessageSlack(...args);
},
sendMessageSignal: async (...args) => {
const { sendMessageSignal } = await import("../signal/send.js");
const { sendMessageSignal } = await loadSignalSenderRuntime();
return await sendMessageSignal(...args);
},
sendMessageIMessage: async (...args) => {
const { sendMessageIMessage } = await import("../imessage/send.js");
const { sendMessageIMessage } = await loadIMessageSenderRuntime();
return await sendMessageIMessage(...args);
},
};