refactor(setup): support account-scoped default patches

This commit is contained in:
Peter Steinberger
2026-03-17 03:51:02 +00:00
parent 78869f1517
commit c51842660f
3 changed files with 46 additions and 52 deletions

View File

@@ -1,52 +1,12 @@
import {
applyAccountNameToChannelSection,
type ChannelSetupAdapter,
migrateBaseNameToDefaultAccount,
normalizeAccountId,
} from "../../../src/plugin-sdk-internal/setup.js";
import { createPatchedAccountSetupAdapter } from "../../../src/channels/plugins/setup-helpers.js";
import type { ChannelSetupAdapter } from "../../../src/plugin-sdk-internal/setup.js";
const channel = "whatsapp" as const;
export const whatsappSetupAdapter: ChannelSetupAdapter = {
resolveAccountId: ({ accountId }) => normalizeAccountId(accountId),
applyAccountName: ({ cfg, accountId, name }) =>
applyAccountNameToChannelSection({
cfg,
channelKey: channel,
accountId,
name,
alwaysUseAccounts: true,
}),
applyAccountConfig: ({ cfg, accountId, input }) => {
const namedConfig = applyAccountNameToChannelSection({
cfg,
channelKey: channel,
accountId,
name: input.name,
alwaysUseAccounts: true,
});
const next = migrateBaseNameToDefaultAccount({
cfg: namedConfig,
channelKey: channel,
alwaysUseAccounts: true,
});
const entry = {
...next.channels?.whatsapp?.accounts?.[accountId],
...(input.authDir ? { authDir: input.authDir } : {}),
enabled: true,
};
return {
...next,
channels: {
...next.channels,
whatsapp: {
...next.channels?.whatsapp,
accounts: {
...next.channels?.whatsapp?.accounts,
[accountId]: entry,
},
},
},
};
},
};
export const whatsappSetupAdapter: ChannelSetupAdapter = createPatchedAccountSetupAdapter({
channelKey: channel,
alwaysUseAccounts: true,
buildPatch: (input) => ({
...(input.authDir ? { authDir: input.authDir } : {}),
}),
});