UNPKG

1.07 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.EscapeCode = void 0;
4const ESC = '\u001B[';
5/**
6 * ANSI escape codes (WIP)
7 *
8 * @see https://en.wikipedia.org/wiki/ANSI_escape_code
9 */
10class EscapeCode {
11}
12exports.EscapeCode = EscapeCode;
13EscapeCode.cursorLeft = () => `${ESC}G`;
14EscapeCode.cursorUp = (count = 1) => `${ESC}${count}A`;
15EscapeCode.cursorDown = (count = 1) => `${ESC}${count}B`;
16EscapeCode.cursorForward = (count = 1) => `${ESC}${count}C`;
17EscapeCode.cursorBackward = (count = 1) => `${ESC}${count}D`;
18EscapeCode.cursorHide = () => `${ESC}?25l`;
19EscapeCode.cursorShow = () => `${ESC}?25h`;
20EscapeCode.eraseLine = () => `${ESC}2K`;
21EscapeCode.eraseLines = (count) => {
22 let seq = '';
23 for (let i = 0; i < count; i++) {
24 seq += EscapeCode.eraseLine();
25 if (i < count - 1) {
26 seq += EscapeCode.cursorUp();
27 }
28 }
29 return `${seq}${EscapeCode.cursorLeft()}`;
30};
31EscapeCode.eraseUp = () => `${ESC}1J`;
32EscapeCode.eraseDown = () => `${ESC}J`;
33EscapeCode.eraseScreen = () => `${ESC}2J`;