1 |
|
2 |
|
3 | const emoji = require('./emoji');
|
4 | const messages = require('./messages');
|
5 |
|
6 | module.exports = function(componentNames) {
|
7 |
|
8 | const list = require('select-shell')({
|
9 | pointer: emoji(' ☛ ', ' ► '),
|
10 | checked: emoji(' ☑️ ', ' ■ '),
|
11 | unchecked: emoji(' ◻️ ', ' ■ '),
|
12 | checkedColor: 'green',
|
13 | uncheckedColor: 'grey',
|
14 | msgCancel: '',
|
15 | multiSelect: true,
|
16 | prepend: true
|
17 | });
|
18 |
|
19 | return new Promise(resolve => {
|
20 | messages.emptyLine();
|
21 | messages.selectComponents();
|
22 |
|
23 | componentNames.forEach(name => {
|
24 | list.option(name);
|
25 | });
|
26 |
|
27 | list.list();
|
28 |
|
29 | list.on('select', options => {
|
30 | return resolve(options.map(({ text }) => text));
|
31 | });
|
32 |
|
33 | list.on('cancel', () => {
|
34 | messages.emptyLine();
|
35 | messages.selectComponentsCancel();
|
36 | messages.emptyLine();
|
37 | process.exit(0);
|
38 | });
|
39 | });
|
40 | };
|