refactor: unify target resolver metadata
This commit is contained in:
@@ -16,8 +16,9 @@ export function normalizeTargetForProvider(provider: string, raw?: string): stri
|
||||
|
||||
export function buildTargetResolverSignature(channel: ChannelId): string {
|
||||
const plugin = getChannelPlugin(channel);
|
||||
const hint = plugin?.messaging?.targetHint ?? "";
|
||||
const looksLike = plugin?.messaging?.looksLikeTargetId;
|
||||
const resolver = plugin?.messaging?.targetResolver;
|
||||
const hint = resolver?.hint ?? "";
|
||||
const looksLike = resolver?.looksLikeId;
|
||||
const source = looksLike ? looksLike.toString() : "";
|
||||
return hashSignature(`${hint}|${source}`);
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ function looksLikeTargetId(params: {
|
||||
const raw = params.raw.trim();
|
||||
if (!raw) return false;
|
||||
const plugin = getChannelPlugin(params.channel);
|
||||
const lookup = plugin?.messaging?.looksLikeTargetId;
|
||||
const lookup = plugin?.messaging?.targetResolver?.looksLikeId;
|
||||
if (lookup) return lookup(raw, params.normalized);
|
||||
if (/^(channel|group|user):/i.test(raw)) return true;
|
||||
if (/^[@#]/.test(raw)) return true;
|
||||
@@ -285,7 +285,7 @@ export async function resolveMessagingTarget(params: {
|
||||
}
|
||||
const plugin = getChannelPlugin(params.channel);
|
||||
const providerLabel = plugin?.meta?.label ?? params.channel;
|
||||
const hint = plugin?.messaging?.targetHint;
|
||||
const hint = plugin?.messaging?.targetResolver?.hint;
|
||||
const kind = detectTargetKind(raw, params.preferredKind);
|
||||
const normalized = normalizeTargetForProvider(params.channel, raw) ?? raw;
|
||||
if (looksLikeTargetId({ channel: params.channel, raw, normalized })) {
|
||||
|
||||
@@ -146,7 +146,7 @@ export function resolveOutboundTarget(params: {
|
||||
if (trimmed) {
|
||||
return { ok: true, to: trimmed };
|
||||
}
|
||||
const hint = plugin.messaging?.targetHint;
|
||||
const hint = plugin.messaging?.targetResolver?.hint;
|
||||
return {
|
||||
ok: false,
|
||||
error: missingTargetError(plugin.meta.label ?? params.channel, hint),
|
||||
|
||||
Reference in New Issue
Block a user