39 lines
		
	
	
		
			879 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			879 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| Object.defineProperty(exports, '__esModule', {
 | |
|   value: true,
 | |
| });
 | |
| exports.didYouMean = didYouMean;
 | |
| const MAX_SUGGESTIONS = 5;
 | |
| /**
 | |
|  * Given [ A, B, C ] return ' Did you mean A, B, or C?'.
 | |
|  */
 | |
| 
 | |
| 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 + '?';
 | |
| }
 |