inquirer-autocomplete-prompt
Version:
Autocomplete prompt for inquirer
98 lines (91 loc) • 1.71 kB
JavaScript
/**
* List prompt example
*/
;
var inquirer = require('inquirer');
var _ = require('lodash');
var Promise = require('promise');
inquirer.registerPrompt('autocomplete', require('./index'));
var 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 searchStates(answers, input) {
return new Promise(function(resolve) {
setTimeout(function() {
resolve(states.filter(function(state) {
return new RegExp(input, 'i').exec(state) !== null;
}));
}, _.random(30, 500));
});
}
inquirer.prompt([{
type: 'autocomplete',
name: 'from',
message: 'Select a state to travel from',
source: searchStates
}, {
type: 'autocomplete',
name: 'to',
message: 'Select a state to travel to',
source: searchStates
}], function(answers) {
console.log(JSON.stringify(answers, null, 2));
});