UNPKG

1.5 kBJavaScriptView Raw
1// Generated by LiveScript 1.6.0
2(function(){
3 var prelude, map, sortBy, fl, closestString, nameToRaw, dasherize, naturalJoin;
4 prelude = require('prelude-ls'), map = prelude.map, sortBy = prelude.sortBy;
5 fl = require('fast-levenshtein');
6 closestString = function(possibilities, input){
7 var distances, ref$, string, distance;
8 if (!possibilities.length) {
9 return;
10 }
11 distances = map(function(it){
12 var ref$, longer, shorter;
13 ref$ = input.length > it.length
14 ? [input, it]
15 : [it, input], longer = ref$[0], shorter = ref$[1];
16 return {
17 string: it,
18 distance: fl.get(longer, shorter)
19 };
20 })(
21 possibilities);
22 ref$ = sortBy(function(it){
23 return it.distance;
24 }, distances)[0], string = ref$.string, distance = ref$.distance;
25 return string;
26 };
27 nameToRaw = function(name){
28 if (name.length === 1 || name === 'NUM') {
29 return "-" + name;
30 } else {
31 return "--" + name;
32 }
33 };
34 dasherize = function(string){
35 if (/^[A-Z]/.test(string)) {
36 return string;
37 } else {
38 return prelude.dasherize(string);
39 }
40 };
41 naturalJoin = function(array){
42 if (array.length < 3) {
43 return array.join(' or ');
44 } else {
45 return array.slice(0, -1).join(', ') + ", or " + array[array.length - 1];
46 }
47 };
48 module.exports = {
49 closestString: closestString,
50 nameToRaw: nameToRaw,
51 dasherize: dasherize,
52 naturalJoin: naturalJoin
53 };
54}).call(this);