mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
31 lines
917 B
TypeScript
31 lines
917 B
TypeScript
// Discord plugin module implements outbound approval behavior.
|
|
function hasApprovalChannelData(payload: { channelData?: unknown }): boolean {
|
|
const channelData = payload.channelData;
|
|
if (!channelData || typeof channelData !== "object" || Array.isArray(channelData)) {
|
|
return false;
|
|
}
|
|
return Boolean((channelData as { execApproval?: unknown }).execApproval);
|
|
}
|
|
|
|
function neutralizeDiscordApprovalMentions(value: string): string {
|
|
return value
|
|
.replace(/@everyone/gi, "@\u200beveryone")
|
|
.replace(/@here/gi, "@\u200bhere")
|
|
.replace(/<@/g, "<@\u200b")
|
|
.replace(/<#/g, "<#\u200b");
|
|
}
|
|
|
|
export function normalizeDiscordApprovalPayload<
|
|
T extends {
|
|
text?: string;
|
|
channelData?: unknown;
|
|
},
|
|
>(payload: T): T {
|
|
return hasApprovalChannelData(payload) && payload.text
|
|
? {
|
|
...payload,
|
|
text: neutralizeDiscordApprovalMentions(payload.text),
|
|
}
|
|
: payload;
|
|
}
|