type ParsedInput = | { type: "message"; content: string } | { type: "command"; name: string; argument: string }; export function parseInput(value: string): ParsedInput | undefined { const input = value.trim(); if (!input) return; if (!input.startsWith("/")) return { type: "message", content: input }; if (input.startsWith("//")) { return { type: "message", content: input.slice(1) }; } const separator = input.search(/\s/); const name = input.slice(1, separator < 0 ? undefined : separator).toLowerCase(); const argument = separator < 0 ? "" : input.slice(separator + 1).trim(); return { type: "command", name, argument }; }