export const commandLinkRegex = /^\{\[([^\]\|]+)(\|([^\]]+))?\](\(([^\)]+)\))?\}/; export type ParsedCommand = { name: string; args: any[]; alias?: string; }; export function parseCommand(command: string): ParsedCommand { const parsedCommand: ParsedCommand = { name: command, args: [] }; const commandMatch = commandLinkRegex.exec(command); if (commandMatch) { parsedCommand.name = commandMatch[1]; if (commandMatch[3]) { parsedCommand.alias = commandMatch[3]; } parsedCommand.args = commandMatch[5] ? JSON.parse(`[${commandMatch[5]}]`) : []; } return parsedCommand; }