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);
}
Messung V0.5 in Prozent C=100 H=95 G=97
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland