select-shell icon indicating copy to clipboard operation
select-shell copied to clipboard

list of select for nodejs aplication on terminal.

select-shell

Item selection for commandline nodejs apps.
  • [x] Easy to use.
  • [x] Single / multiple item-select.
  • [x] Optional cancel message.
  • [x] Color/styling/spacing options.
  • [x] Only depends on 'colors'!

select-shell example image

Installation

npm install select-shell

Usage

Simply navigate + make selection with the arrow keys...

Up and Down - Navigates on the options
Right - Check the option
Left - Uncheck the option
Enter/Return - confirms the options selected
Esc - Cancel/Exit

Code

'use strict';

var list = require('select-shell')(
  /* possible configs */
  {
    pointer: ' ▸ ',
    pointerColor: 'yellow',
    checked: ' ◉  ',
    unchecked:' ◎  ',
    checkedColor: 'blue',
    msgCancel: 'No selected options!',
    msgCancelColor: 'orange',
    multiSelect: true,
    inverse: true,
    prepend: true,
    disableInput: true
  }
);

var stream = process.stdin;

list.option(' One    ')
    .option(' Two    ')
    .option(' Three  ')
    .list();

list.on('select', function(options){
  console.log(options);
  process.exit(0);
});

list.on('cancel', function(options){
  console.log('Cancel list, '+ options.length +' options selected');
  process.exit(0);
});

Optional configs

var select = require('select-shell')(
  /* These are the default values */
  {
    pointer: '> ',
    pointerColor: 'white',
    checked: ' ✓',
    unchecked: '',
    checkedColor: 'green',
    msgCancel: 'No selected options!',
    msgCancelColor: 'red',
    multiSelect: true,
    inverse: false,
    prepend: false,
    disableInput: true
  }
);

And for coffee drinkers, please see sample.coffee.

list = require('.')
  pointer    : ' ► '
  checked    : ' ◉  '
  unchecked  : ' ◎  '
  prepend    : true

The scheme of color is equal to the module colors.

style color theme
bold yellow rainbow
italic cyan random
underline white zebra
inverse magenta
green
red
grey
blue