fix: resolve discord target typing

This commit is contained in:
Cheese 2026-01-28 11:34:59 +08:00
parent 98fb58e318
commit 0d95334203
No known key found for this signature in database

View File

@ -5,12 +5,10 @@ import {
type MessagingTarget, type MessagingTarget,
type MessagingTargetKind, type MessagingTargetKind,
type MessagingTargetParseOptions, type MessagingTargetParseOptions,
type DirectoryConfigParams,
type ChannelDirectoryEntry,
} from "../channels/targets.js"; } from "../channels/targets.js";
import type { DirectoryConfigParams } from "../channels/plugins/directory-config.js";
import { listDiscordDirectoryPeersLive } from "./directory-live.js"; import { listDiscordDirectoryPeersLive } from "./directory-live.js";
import { resolveDiscordAccount } from "./accounts.js";
export type DiscordTargetKind = MessagingTargetKind; export type DiscordTargetKind = MessagingTargetKind;
@ -82,8 +80,8 @@ export async function resolveDiscordTarget(
if (!trimmed) return undefined; if (!trimmed) return undefined;
// If already a known format, parse directly // If already a known format, parse directly
const directParse = parseDiscordTarget(trimmed, options); const directParse = parseDiscordTarget(trimmed, { defaultKind: "channel" });
if (directParse && directParse.kind !== "channel" && !isLikelyUsername(trimmed)) { if (directParse && !isLikelyUsername(trimmed)) {
return directParse; return directParse;
} }
@ -101,13 +99,13 @@ export async function resolveDiscordTarget(
const userId = match.id.replace(/^user:/, ""); const userId = match.id.replace(/^user:/, "");
return buildMessagingTarget("user", userId, trimmed); return buildMessagingTarget("user", userId, trimmed);
} }
} catch (error) { } catch {
// Directory lookup failed - fall through to parse as-is // Directory lookup failed - fall through to parse as-is
// This preserves existing behavior for channel names // This preserves existing behavior for channel names
} }
// Fallback to original parsing (for channels, etc.) // Fallback to original parsing (for channels, etc.)
return parseDiscordTarget(trimmed, options); return parseDiscordTarget(trimmed, { defaultKind: "channel" });
} }
/** /**