You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							51 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							51 lines
						
					
					
						
							1.1 KiB
						
					
					
				'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 | 
						|
}; |