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.
		
		
		
		
		
			
		
			
				
					
					
						
							125 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							125 lines
						
					
					
						
							2.3 KiB
						
					
					
				'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) | 
						|
}
 | 
						|
 |