Files
moltbot/src/plugin-sdk/telegram-command-config.ts
2026-04-18 20:16:44 +01:00

72 lines
2.0 KiB
TypeScript

import {
normalizeCommandDescription,
normalizeSlashCommandName,
resolveCustomCommands,
} from "../shared/custom-command-config.js";
export type TelegramCustomCommandInput = {
command?: string | null;
description?: string | null;
};
export type TelegramCustomCommandIssue = {
index: number;
field: "command" | "description";
message: string;
};
const TELEGRAM_COMMAND_NAME_PATTERN_VALUE = /^[a-z0-9_]{1,32}$/;
const TELEGRAM_CUSTOM_COMMAND_CONFIG = {
label: "Telegram",
pattern: TELEGRAM_COMMAND_NAME_PATTERN_VALUE,
patternDescription: "use a-z, 0-9, underscore; max 32 chars",
} as const;
function normalizeTelegramCommandNameImpl(value: string): string {
return normalizeSlashCommandName(value);
}
function normalizeTelegramCommandDescriptionImpl(value: string): string {
return normalizeCommandDescription(value);
}
function resolveTelegramCustomCommandsImpl(params: {
commands?: TelegramCustomCommandInput[] | null;
reservedCommands?: Set<string>;
checkReserved?: boolean;
checkDuplicates?: boolean;
}): {
commands: Array<{ command: string; description: string }>;
issues: TelegramCustomCommandIssue[];
} {
return resolveCustomCommands({
...params,
config: TELEGRAM_CUSTOM_COMMAND_CONFIG,
});
}
export function getTelegramCommandNamePattern(): RegExp {
return TELEGRAM_COMMAND_NAME_PATTERN_VALUE;
}
export const TELEGRAM_COMMAND_NAME_PATTERN = TELEGRAM_COMMAND_NAME_PATTERN_VALUE;
export function normalizeTelegramCommandName(value: string): string {
return normalizeTelegramCommandNameImpl(value);
}
export function normalizeTelegramCommandDescription(value: string): string {
return normalizeTelegramCommandDescriptionImpl(value);
}
export function resolveTelegramCustomCommands(params: {
commands?: TelegramCustomCommandInput[] | null;
reservedCommands?: Set<string>;
checkReserved?: boolean;
checkDuplicates?: boolean;
}): {
commands: Array<{ command: string; description: string }>;
issues: TelegramCustomCommandIssue[];
} {
return resolveTelegramCustomCommandsImpl(params);
}