-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.js
94 lines (87 loc) · 1.69 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
const inquirer = require('inquirer')
inquirer.registerPrompt('checkbox-search', require('./index'))
const states = [
'Alabama',
'Alaska',
'American Samoa',
'Arizona',
'Arkansas',
'California',
'Colorado',
'Connecticut',
'Delaware',
'District Of Columbia',
'Federated States Of Micronesia',
'Florida',
'Georgia',
'Guam',
'Hawaii',
'Idaho',
'Illinois',
'Indiana',
'Iowa',
'Kansas',
'Kentucky',
'Louisiana',
'Maine',
'Marshall Islands',
'Maryland',
'Massachusetts',
'Michigan',
'Minnesota',
'Mississippi',
'Missouri',
'Montana',
'Nebraska',
'Nevada',
'New Hampshire',
'New Jersey',
'New Mexico',
'New York',
'North Carolina',
'North Dakota',
'Northern Mariana Islands',
'Ohio',
'Oklahoma',
'Oregon',
'Palau',
'Pennsylvania',
'Puerto Rico',
'Rhode Island',
'South Carolina',
'South Dakota',
'Tennessee',
'Texas',
'Utah',
'Vermont',
'Virgin Islands',
'Virginia',
'Washington',
'West Virginia',
'Wisconsin',
'Wyoming'
]
function filterStates(answers, input) {
input = input || ''
const inputArray = input.split(' ')
return new Promise((resolve) => {
resolve(states.filter((state) => {
let shouldInclude = true
inputArray.forEach((inputChunk) => {
// if any term to filter by doesn't exist, exclude
if (!state.toLowerCase().includes(inputChunk.toLowerCase())) {
shouldInclude = false
}
})
return shouldInclude
}))
})
}
inquirer.prompt([{
type: 'checkbox-search',
name: 'states',
message: 'Which states would you like to visit?',
source: filterStates
}]).then(answers => {
console.log(JSON.stringify(answers.states, null, 2))
})