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) | ||
|  | } |