mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-20 21:51:28 +00:00
* refactor: move Discord channel implementation to extensions/discord/src/ Move all Discord source files from src/discord/ to extensions/discord/src/, following the extension migration pattern. Source files in src/discord/ are replaced with re-export shims. Channel-plugin files from src/channels/plugins/*/discord* are similarly moved and shimmed. - Copy all .ts source files preserving subdirectory structure (monitor/, voice/) - Move channel-plugin files (actions, normalize, onboarding, outbound, status-issues) - Fix all relative imports to use correct paths from new location - Create re-export shims at original locations for backward compatibility - Delete test files from shim locations (tests live in extension now) - Update tsconfig.plugin-sdk.dts.json rootDir from "src" to "." to accommodate extension files outside src/ - Update write-plugin-sdk-entry-dts.ts to match new declaration output paths * fix: add importOriginal to thread-bindings session-meta mock for extensions test * style: fix formatting in thread-bindings lifecycle test
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import type { DiscordGuildSummary } from "./guilds.js";
|
|
import { normalizeDiscordSlug } from "./monitor/allow-list.js";
|
|
import { normalizeDiscordToken } from "./token.js";
|
|
|
|
export function resolveDiscordAllowlistToken(token: string): string | undefined {
|
|
return normalizeDiscordToken(token, "channels.discord.token");
|
|
}
|
|
|
|
export function buildDiscordUnresolvedResults<T extends { input: string; resolved: boolean }>(
|
|
entries: string[],
|
|
buildResult: (input: string) => T,
|
|
): T[] {
|
|
return entries.map((input) => buildResult(input));
|
|
}
|
|
|
|
export function findDiscordGuildByName(
|
|
guilds: DiscordGuildSummary[],
|
|
input: string,
|
|
): DiscordGuildSummary | undefined {
|
|
const slug = normalizeDiscordSlug(input);
|
|
if (!slug) {
|
|
return undefined;
|
|
}
|
|
return guilds.find((guild) => guild.slug === slug);
|
|
}
|
|
|
|
export function filterDiscordGuilds(
|
|
guilds: DiscordGuildSummary[],
|
|
params: { guildId?: string; guildName?: string },
|
|
): DiscordGuildSummary[] {
|
|
if (params.guildId) {
|
|
return guilds.filter((guild) => guild.id === params.guildId);
|
|
}
|
|
if (params.guildName) {
|
|
const match = findDiscordGuildByName(guilds, params.guildName);
|
|
return match ? [match] : [];
|
|
}
|
|
return guilds;
|
|
}
|