Skip to content

Commit b9933b2

Browse files
committed
refactor: share Discord account token inspection
1 parent f848a6f commit b9933b2

3 files changed

Lines changed: 39 additions & 58 deletions

File tree

extensions/discord/src/account-inspect.ts

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
2-
import {
3-
hasConfiguredSecretInput,
4-
normalizeSecretInputString,
5-
} from "openclaw/plugin-sdk/secret-input";
2+
import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
63
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4+
import { inspectDiscordConfiguredToken } from "./account-token-inspect.js";
75
import {
86
mergeDiscordAccountConfig,
97
resolveDefaultDiscordAccountId,
@@ -23,29 +21,6 @@ export type InspectedDiscordAccount = {
2321
config: DiscordAccountConfig;
2422
};
2523

26-
function inspectDiscordTokenValue(value: unknown): {
27-
token: string;
28-
tokenSource: "config";
29-
tokenStatus: Exclude<DiscordCredentialStatus, "missing">;
30-
} | null {
31-
const normalized = normalizeSecretInputString(value);
32-
if (normalized) {
33-
return {
34-
token: normalized.replace(/^Bot\s+/i, ""),
35-
tokenSource: "config",
36-
tokenStatus: "available",
37-
};
38-
}
39-
if (hasConfiguredSecretInput(value)) {
40-
return {
41-
token: "",
42-
tokenSource: "config",
43-
tokenStatus: "configured_unavailable",
44-
};
45-
}
46-
return null;
47-
}
48-
4924
export function inspectDiscordAccount(params: {
5025
cfg: OpenClawConfig;
5126
accountId?: string | null;
@@ -61,7 +36,7 @@ export function inspectDiscordAccount(params: {
6136
accountConfig &&
6237
Object.prototype.hasOwnProperty.call(accountConfig as Record<string, unknown>, "token"),
6338
);
64-
const accountToken = inspectDiscordTokenValue(accountConfig?.token);
39+
const accountToken = inspectDiscordConfiguredToken(accountConfig?.token);
6540
if (accountToken) {
6641
return {
6742
accountId,
@@ -87,7 +62,7 @@ export function inspectDiscordAccount(params: {
8762
};
8863
}
8964

90-
const channelToken = inspectDiscordTokenValue(params.cfg.channels?.discord?.token);
65+
const channelToken = inspectDiscordConfiguredToken(params.cfg.channels?.discord?.token);
9166
if (channelToken) {
9267
return {
9368
accountId,
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import {
2+
hasConfiguredSecretInput,
3+
normalizeSecretInputString,
4+
} from "openclaw/plugin-sdk/secret-input";
5+
import type { DiscordCredentialStatus } from "./token.js";
6+
7+
export type InspectedDiscordConfiguredToken = {
8+
token: string;
9+
tokenSource: "config";
10+
tokenStatus: Exclude<DiscordCredentialStatus, "missing">;
11+
};
12+
13+
export function inspectDiscordConfiguredToken(
14+
value: unknown,
15+
): InspectedDiscordConfiguredToken | null {
16+
const normalized = normalizeSecretInputString(value);
17+
if (normalized) {
18+
return {
19+
token: normalized.replace(/^Bot\s+/i, ""),
20+
tokenSource: "config",
21+
tokenStatus: "available",
22+
};
23+
}
24+
if (hasConfiguredSecretInput(value)) {
25+
return {
26+
token: "",
27+
tokenSource: "config",
28+
tokenStatus: "configured_unavailable",
29+
};
30+
}
31+
return null;
32+
}

extensions/discord/src/setup-account-state.ts

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
22
import { listCombinedAccountIds } from "openclaw/plugin-sdk/account-resolution";
33
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts";
4-
import {
5-
hasConfiguredSecretInput,
6-
normalizeSecretInputString,
7-
} from "openclaw/plugin-sdk/secret-input";
4+
import { inspectDiscordConfiguredToken } from "./account-token-inspect.js";
85
import { resolveDefaultDiscordAccountId } from "./accounts.js";
96
import { mergeDiscordAccountConfig, resolveDiscordAccountConfig } from "./accounts.js";
107
import type { DiscordAccountConfig } from "./runtime-api.js";
@@ -20,29 +17,6 @@ type InspectedDiscordSetupAccount = {
2017
config: DiscordAccountConfig;
2118
};
2219

23-
function inspectConfiguredToken(value: unknown): {
24-
token: string;
25-
tokenSource: "config";
26-
tokenStatus: "available" | "configured_unavailable";
27-
} | null {
28-
const normalized = normalizeSecretInputString(value);
29-
if (normalized) {
30-
return {
31-
token: normalized.replace(/^Bot\s+/i, ""),
32-
tokenSource: "config",
33-
tokenStatus: "available",
34-
};
35-
}
36-
if (hasConfiguredSecretInput(value)) {
37-
return {
38-
token: "",
39-
tokenSource: "config",
40-
tokenStatus: "configured_unavailable",
41-
};
42-
}
43-
return null;
44-
}
45-
4620
export function listDiscordSetupAccountIds(cfg: OpenClawConfig): string[] {
4721
const accounts = cfg.channels?.discord?.accounts;
4822
return listCombinedAccountIds({
@@ -82,7 +56,7 @@ export function inspectDiscordSetupAccount(params: {
8256
accountConfig &&
8357
Object.prototype.hasOwnProperty.call(accountConfig as Record<string, unknown>, "token"),
8458
);
85-
const accountToken = inspectConfiguredToken(accountConfig?.token);
59+
const accountToken = inspectDiscordConfiguredToken(accountConfig?.token);
8660
if (accountToken) {
8761
return {
8862
accountId,
@@ -106,7 +80,7 @@ export function inspectDiscordSetupAccount(params: {
10680
};
10781
}
10882

109-
const channelToken = inspectConfiguredToken(params.cfg.channels?.discord?.token);
83+
const channelToken = inspectDiscordConfiguredToken(params.cfg.channels?.discord?.token);
11084
if (channelToken) {
11185
return {
11286
accountId,

0 commit comments

Comments
 (0)