You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					55 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					55 lines
				
				1.5 KiB
			| 
											3 years ago
										 | // Generated by LiveScript 1.6.0
 | ||
|  | (function(){ | ||
|  |   var prelude, map, sortBy, fl, closestString, nameToRaw, dasherize, naturalJoin; | ||
|  |   prelude = require('prelude-ls'), map = prelude.map, sortBy = prelude.sortBy; | ||
|  |   fl = require('fast-levenshtein'); | ||
|  |   closestString = function(possibilities, input){ | ||
|  |     var distances, ref$, string, distance; | ||
|  |     if (!possibilities.length) { | ||
|  |       return; | ||
|  |     } | ||
|  |     distances = map(function(it){ | ||
|  |       var ref$, longer, shorter; | ||
|  |       ref$ = input.length > it.length | ||
|  |         ? [input, it] | ||
|  |         : [it, input], longer = ref$[0], shorter = ref$[1]; | ||
|  |       return { | ||
|  |         string: it, | ||
|  |         distance: fl.get(longer, shorter) | ||
|  |       }; | ||
|  |     })( | ||
|  |     possibilities); | ||
|  |     ref$ = sortBy(function(it){ | ||
|  |       return it.distance; | ||
|  |     }, distances)[0], string = ref$.string, distance = ref$.distance; | ||
|  |     return string; | ||
|  |   }; | ||
|  |   nameToRaw = function(name){ | ||
|  |     if (name.length === 1 || name === 'NUM') { | ||
|  |       return "-" + name; | ||
|  |     } else { | ||
|  |       return "--" + name; | ||
|  |     } | ||
|  |   }; | ||
|  |   dasherize = function(string){ | ||
|  |     if (/^[A-Z]/.test(string)) { | ||
|  |       return string; | ||
|  |     } else { | ||
|  |       return prelude.dasherize(string); | ||
|  |     } | ||
|  |   }; | ||
|  |   naturalJoin = function(array){ | ||
|  |     if (array.length < 3) { | ||
|  |       return array.join(' or '); | ||
|  |     } else { | ||
|  |       return array.slice(0, -1).join(', ') + ", or " + array[array.length - 1]; | ||
|  |     } | ||
|  |   }; | ||
|  |   module.exports = { | ||
|  |     closestString: closestString, | ||
|  |     nameToRaw: nameToRaw, | ||
|  |     dasherize: dasherize, | ||
|  |     naturalJoin: naturalJoin | ||
|  |   }; | ||
|  | }).call(this); |