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.
		
		
		
		
		
			
		
			
				
					126 lines
				
				2.3 KiB
			
		
		
			
		
	
	
					126 lines
				
				2.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// These tables borrowed from `ansi`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var prefix = '\x1b['
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.up = function up (num) {
							 | 
						||
| 
								 | 
							
								  return prefix + (num || '') + 'A'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.down = function down (num) {
							 | 
						||
| 
								 | 
							
								  return prefix + (num || '') + 'B'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.forward = function forward (num) {
							 | 
						||
| 
								 | 
							
								  return prefix + (num || '') + 'C'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.back = function back (num) {
							 | 
						||
| 
								 | 
							
								  return prefix + (num || '') + 'D'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.nextLine = function nextLine (num) {
							 | 
						||
| 
								 | 
							
								  return prefix + (num || '') + 'E'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.previousLine = function previousLine (num) {
							 | 
						||
| 
								 | 
							
								  return prefix + (num || '') + 'F'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.horizontalAbsolute = function horizontalAbsolute (num) {
							 | 
						||
| 
								 | 
							
								  if (num == null) throw new Error('horizontalAboslute requires a column to position to')
							 | 
						||
| 
								 | 
							
								  return prefix + num + 'G'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.eraseData = function eraseData () {
							 | 
						||
| 
								 | 
							
								  return prefix + 'J'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.eraseLine = function eraseLine () {
							 | 
						||
| 
								 | 
							
								  return prefix + 'K'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.goto = function (x, y) {
							 | 
						||
| 
								 | 
							
								  return prefix + y + ';' + x + 'H'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.gotoSOL = function () {
							 | 
						||
| 
								 | 
							
								  return '\r'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.beep = function () {
							 | 
						||
| 
								 | 
							
								  return '\x07'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.hideCursor = function hideCursor () {
							 | 
						||
| 
								 | 
							
								  return prefix + '?25l'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.showCursor = function showCursor () {
							 | 
						||
| 
								 | 
							
								  return prefix + '?25h'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var colors = {
							 | 
						||
| 
								 | 
							
								  reset: 0,
							 | 
						||
| 
								 | 
							
								// styles
							 | 
						||
| 
								 | 
							
								  bold: 1,
							 | 
						||
| 
								 | 
							
								  italic: 3,
							 | 
						||
| 
								 | 
							
								  underline: 4,
							 | 
						||
| 
								 | 
							
								  inverse: 7,
							 | 
						||
| 
								 | 
							
								// resets
							 | 
						||
| 
								 | 
							
								  stopBold: 22,
							 | 
						||
| 
								 | 
							
								  stopItalic: 23,
							 | 
						||
| 
								 | 
							
								  stopUnderline: 24,
							 | 
						||
| 
								 | 
							
								  stopInverse: 27,
							 | 
						||
| 
								 | 
							
								// colors
							 | 
						||
| 
								 | 
							
								  white: 37,
							 | 
						||
| 
								 | 
							
								  black: 30,
							 | 
						||
| 
								 | 
							
								  blue: 34,
							 | 
						||
| 
								 | 
							
								  cyan: 36,
							 | 
						||
| 
								 | 
							
								  green: 32,
							 | 
						||
| 
								 | 
							
								  magenta: 35,
							 | 
						||
| 
								 | 
							
								  red: 31,
							 | 
						||
| 
								 | 
							
								  yellow: 33,
							 | 
						||
| 
								 | 
							
								  bgWhite: 47,
							 | 
						||
| 
								 | 
							
								  bgBlack: 40,
							 | 
						||
| 
								 | 
							
								  bgBlue: 44,
							 | 
						||
| 
								 | 
							
								  bgCyan: 46,
							 | 
						||
| 
								 | 
							
								  bgGreen: 42,
							 | 
						||
| 
								 | 
							
								  bgMagenta: 45,
							 | 
						||
| 
								 | 
							
								  bgRed: 41,
							 | 
						||
| 
								 | 
							
								  bgYellow: 43,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  grey: 90,
							 | 
						||
| 
								 | 
							
								  brightBlack: 90,
							 | 
						||
| 
								 | 
							
								  brightRed: 91,
							 | 
						||
| 
								 | 
							
								  brightGreen: 92,
							 | 
						||
| 
								 | 
							
								  brightYellow: 93,
							 | 
						||
| 
								 | 
							
								  brightBlue: 94,
							 | 
						||
| 
								 | 
							
								  brightMagenta: 95,
							 | 
						||
| 
								 | 
							
								  brightCyan: 96,
							 | 
						||
| 
								 | 
							
								  brightWhite: 97,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  bgGrey: 100,
							 | 
						||
| 
								 | 
							
								  bgBrightBlack: 100,
							 | 
						||
| 
								 | 
							
								  bgBrightRed: 101,
							 | 
						||
| 
								 | 
							
								  bgBrightGreen: 102,
							 | 
						||
| 
								 | 
							
								  bgBrightYellow: 103,
							 | 
						||
| 
								 | 
							
								  bgBrightBlue: 104,
							 | 
						||
| 
								 | 
							
								  bgBrightMagenta: 105,
							 | 
						||
| 
								 | 
							
								  bgBrightCyan: 106,
							 | 
						||
| 
								 | 
							
								  bgBrightWhite: 107
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.color = function color (colorWith) {
							 | 
						||
| 
								 | 
							
								  if (arguments.length !== 1 || !Array.isArray(colorWith)) {
							 | 
						||
| 
								 | 
							
								    colorWith = Array.prototype.slice.call(arguments)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return prefix + colorWith.map(colorNameToCode).join(';') + 'm'
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function colorNameToCode (color) {
							 | 
						||
| 
								 | 
							
								  if (colors[color] != null) return colors[color]
							 | 
						||
| 
								 | 
							
								  throw new Error('Unknown color or style name: ' + color)
							 | 
						||
| 
								 | 
							
								}
							 |