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