import type { GrowiCommand } from '../interfaces/growi-command'; import { InvalidGrowiCommandError } from '../models/errors'; export const parseSlashCommand = (slashCommand: { [key: string]: string; }): GrowiCommand => { if (slashCommand.text == null) { throw new InvalidGrowiCommandError('The SlashCommand.text is null'); } const trimmedText = slashCommand.text.trim(); const splitted = trimmedText.split(' '); if (splitted[0] === '') { throw new InvalidGrowiCommandError( 'The SlashCommand.text does not specify GrowiCommand type', ); } return { text: slashCommand.text, responseUrl: slashCommand.response_url, growiCommandType: splitted[0], growiCommandArgs: splitted.slice(1), }; };