const MAX_SUGGESTIONS = 5; /** * Given [ A, B, C ] return ' Did you mean A, B, or C?'. */ export function didYouMean(firstArg, secondArg) { const [subMessage, suggestionsArg] = secondArg ? [firstArg, secondArg] : [undefined, firstArg]; let message = ' Did you mean '; if (subMessage) { message += subMessage + ' '; } const suggestions = suggestionsArg.map((x) => `"${x}"`); switch (suggestions.length) { case 0: return ''; case 1: return message + suggestions[0] + '?'; case 2: return message + suggestions[0] + ' or ' + suggestions[1] + '?'; } const selected = suggestions.slice(0, MAX_SUGGESTIONS); const lastItem = selected.pop(); return message + selected.join(', ') + ', or ' + lastItem + '?'; }