refactor(slack): reuse shared account merge helper

This commit is contained in:
Peter Steinberger
2026-03-07 16:20:10 +00:00
parent d01cb7b65f
commit 398bf51659
2 changed files with 9 additions and 18 deletions

View File

@@ -1,9 +1,12 @@
import type { OpenClawConfig } from "../config/config.js";
import { hasConfiguredSecretInput, normalizeSecretInputString } from "../config/types.secrets.js";
import type { SlackAccountConfig } from "../config/types.slack.js";
import { resolveAccountEntry } from "../routing/account-lookup.js";
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../routing/session-key.js";
import { resolveDefaultSlackAccountId, type SlackTokenSource } from "./accounts.js";
import {
mergeSlackAccountConfig,
resolveDefaultSlackAccountId,
type SlackTokenSource,
} from "./accounts.js";
export type SlackCredentialStatus = "available" | "configured_unavailable" | "missing";
@@ -39,21 +42,6 @@ export type InspectedSlackAccount = {
channels?: SlackAccountConfig["channels"];
};
function resolveSlackAccountConfig(
cfg: OpenClawConfig,
accountId: string,
): SlackAccountConfig | undefined {
return resolveAccountEntry(cfg.channels?.slack?.accounts, accountId);
}
function mergeSlackAccountConfig(cfg: OpenClawConfig, accountId: string): SlackAccountConfig {
const { accounts: _ignored, ...base } = (cfg.channels?.slack ?? {}) as SlackAccountConfig & {
accounts?: unknown;
};
const account = resolveSlackAccountConfig(cfg, accountId) ?? {};
return { ...base, ...account };
}
function inspectSlackToken(value: unknown): {
token?: string;
source: Exclude<SlackTokenSource, "env">;

View File

@@ -43,7 +43,10 @@ function resolveAccountConfig(
return resolveAccountEntry(cfg.channels?.slack?.accounts, accountId);
}
function mergeSlackAccountConfig(cfg: OpenClawConfig, accountId: string): SlackAccountConfig {
export function mergeSlackAccountConfig(
cfg: OpenClawConfig,
accountId: string,
): SlackAccountConfig {
const { accounts: _ignored, ...base } = (cfg.channels?.slack ?? {}) as SlackAccountConfig & {
accounts?: unknown;
};