const commands = require('./command-group'); function splitToken(msg) { if (typeof msg !== 'string') { return null; } if (!msg.trim()) { return null; } const delimiters = msg.trim().match(/^\w+(\W)/); const delimiter = delimiters && delimiters[1] ? delimiters[1] : null; const delimiterRegex = delimiter ? new RegExp(`\\${delimiter}+`) : new RegExp('[\\s\\.]+'); return msg.trim().split(delimiterRegex); } function makeSureAsTokensArray(msgOrTokens) { if (typeof msgOrTokens === 'string') { return splitToken(msgOrTokens); } return msgOrTokens; } function extractCommand(msgOrTokens) { const msgOrTokensArray = makeSureAsTokensArray(msgOrTokens); if (!msgOrTokensArray) return null; return msgOrTokensArray[0]; } function extractCommandGroup(msgOrTokens) { const cmd = extractCommand(msgOrTokens); if (!cmd) return null; return commands[cmd.toLowerCase()]; } exports.splitToken = splitToken; exports.extractCommand = extractCommand; exports.extractCommandGroup = extractCommandGroup;