"use strict"; const commands = require('./command-group'); function splitToken(msg) { if (typeof msg !== 'string') { return; } if (!msg.trim()) { return; } 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) { msgOrTokens = _makeSureAsTokensArray(msgOrTokens); if (!msgOrTokens) return; return msgOrTokens[0]; } function extractCommandGroup(msgOrTokens) { const cmd = extractCommand(msgOrTokens); if (!cmd) return; return commands[ cmd.toLowerCase() ]; } exports.splitToken = splitToken; exports.extractCommand = extractCommand; exports.extractCommandGroup = extractCommandGroup;