12345678910111213141516171819202122232425262728293031323334353637383940 |
- 'use strict';
- const c = require('kleur');
- const figures = require('./figures');
- // rendering user input.
- const styles = Object.freeze({
- password: { scale: 1, render: input => '*'.repeat(input.length) },
- emoji: { scale: 2, render: input => '😃'.repeat(input.length) },
- invisible: { scale: 0, render: input => '' },
- default: { scale: 1, render: input => `${input}` }
- });
- const render = type => styles[type] || styles.default;
- // icon to signalize a prompt.
- const symbols = Object.freeze({
- aborted: c.red(figures.cross),
- done: c.green(figures.tick),
- exited: c.yellow(figures.cross),
- default: c.cyan('?')
- });
- const symbol = (done, aborted, exited) =>
- aborted ? symbols.aborted : exited ? symbols.exited : done ? symbols.done : symbols.default;
- // between the question and the user's input.
- const delimiter = completing =>
- c.gray(completing ? figures.ellipsis : figures.pointerSmall);
- const item = (expandable, expanded) =>
- c.gray(expandable ? (expanded ? figures.pointerSmall : '+') : figures.line);
- module.exports = {
- styles,
- render,
- symbols,
- symbol,
- delimiter,
- item
- };
|