- Control terminal cursor
- Terminal string styling
Install using pnpm
:
pnpm add control-terminal
Or yarn
:
yarn add control-terminal
Or npm
:
npm i control-terminal
import * as terminal from 'control-terminal';
console.log(terminal.style.bold.blue('Hello world!'));
console.log(terminal.style.bgBlue.hex('#ff7b72')('Blue backgroud'));
terminal.cursor.erasePreviousLine();
console.log(terminal.style.bgRgb(255, 123, 114).underline('Underline'));
Output:
The methods in terminal.cursor
namespace will help you control cursor and terminal.
Moving cursor methods:
goTo(line: number, column: number)
: Move the cursor to a specific position (line >= 1, column >= 1)gotoStart()
: Move the cursor to line 1, column 1carriageReturn()
: Move the cursor to start of lineup(line: number = 1)
: Move the cursor upline
linesdown(line: number = 1)
: Move the cursor downline
linesforward(column: number = 1)
: Move the cursor forwardcolumn
columnsbackward(column: number = 1)
: Move the cursor backwardcolumn
columnspreviousLine()
: Move the cursor up 1 line, column 1
Clear screen methods:
clearScreen()
: Clear the screenreset()
: Reset deviceeraseToEndLine()
: Erase to the end of line that begins the cursor's current positioneraseToEndScreen()
: Erase to the end of screen that begins the cursor's current positioneraseCurrentLine()
: Erase the current line of the cursor// Two these are equivalent. terminal.cursor.eraseCurrentLine(); terminal.cursor.carriageReturn().eraseToEndLine();
erasePreviousLine(line: number = 1)
: Erase the previous line from the cursor// Two these are equivalent. terminal.cursor.erasePreviousLine(line); terminal.cursor.up(line).eraseCurrentLine();
Other methods:
hide()
: Hide cursorsave()
: Save cursor positionrestore()
: Restore cursor position
The terminal.style
namespace will help you string styling.
Modifiers:
reset
: Resets the current color chain.bold
: Make text bold.dim
: Emitting only a small amount of light.italic
: Make text italic. (Not widely supported)underline
: Make text underline. (Not widely supported)slowBlink
: Make text slow blink. (Not widely supported)rapidBlink
: Make text rapid blink. (Not widely supported)inverse
: Inverse background and foreground colors.hidden
: Prints the text, but makes it invisible.strikethrough
: Puts a horizontal line through the center of the text. (Not widely supported)fraktur
: Make text fraktur. (Not widely supported)framed
: Make text framed. (Not widely supported)encircled
: Make text encircled. (Not widely supported)overline
: Make text overline. (Not widely supported)
Colors:
black
red
green
yellow
blue
magenta
cyan
white
blackBright
redBright
greenBright
yellowBright
blueBright
magentaBright
cyanBright
whiteBright
Background colors:
bgBlack
bgRed
bgGreen
bgYellow
bgBlue
bgMagenta
bgCyan
bgWhite
bgBlackBright
bgRedBright
bgGreenBright
bgYellowBright
bgBlueBright
bgMagentaBright
bgCyanBright
bgWhiteBright
Example:
console.log(terminal.style.bold.bgCyan.green('Hello'));
console.log(terminal.style.italic.bgBlack.white.underline('Hello'));
console.log(terminal.style.white.inverse.bgMagentaBright('Hello'));
Control Terminal support 256 colors and True color (16 million colors) on terminal applications.
The following color models can be used:
256 colors:
ansi256(code: number)
terminal.style.ansi256(12)('Blue text');
bgAnsi256(code: number)
terminal.style.bgAnsi256(12)('Blue background');
RGB:
rgb(red: number, green: number, blue: number)
terminal.style.rgb(88, 166, 255)('Blue text');
bgRgb(red: number, green: number, blue: number)
terminal.style.bgRgb(88, 166, 255)('Blue background');
Hex:
hex(hex: string)
terminal.style.hex('#58a6ff')('Blue text');
bgHex(hex: string)
terminal.style.bgHex('#58a6ff')('Blue background');