-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
90 lines (72 loc) · 2.2 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
const ESC = '\x1b'
const CSI = ESC + '['
const SGR = (n) => CSI + n + 'm'
exports.constants = {
ESC,
CSI,
SGR
}
// https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_(Control_Sequence_Introducer)_sequences
exports.cursorHide = CSI + '?25l'
exports.cursorShow = CSI + '?25h'
exports.cursorUp = function cursorUp(n = 1) {
return CSI + n + 'A'
}
exports.cursorDown = function cursorDown(n = 1) {
return CSI + n + 'B'
}
exports.cursorForward = function cursorForward(n = 1) {
return CSI + n + 'C'
}
exports.cursorBack = function cursorBack(n = 1) {
return CSI + n + 'D'
}
exports.cursorNextLine = function cursorNextLine(n = 1) {
return CSI + n + 'E'
}
exports.cursorPreviousLine = function cursorPreviousLine(n = 1) {
return CSI + n + 'F'
}
exports.cursorPosition = function cursorPosition(column, row = 0) {
if (row === 0) return CSI + (column + 1) + 'G'
return CSI + (row + 1) + ';' + (column + 1) + 'H'
}
exports.eraseDisplayEnd = CSI + 'J'
exports.eraseDisplayStart = CSI + '1J'
exports.eraseDisplay = CSI + '2J'
exports.eraseLineEnd = CSI + 'K'
exports.eraseLineStart = CSI + '1K'
exports.eraseLine = CSI + '2K'
exports.scrollUp = function scrollUp(n = 1) {
return CSI + n + 'S'
}
exports.scrollDown = function scrollDown(n = 1) {
return CSI + n + 'T'
}
// https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters
exports.modifierReset = SGR(0)
exports.modifierBold = SGR(1)
exports.modifierDim = SGR(2)
exports.modifierItalic = SGR(3)
exports.modifierUnderline = SGR(4)
exports.modifierNormal = SGR(22)
exports.modifierNotItalic = SGR(23)
exports.modifierNotUnderline = SGR(24)
// https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
exports.colorBlack = SGR(30)
exports.colorRed = SGR(31)
exports.colorGreen = SGR(32)
exports.colorYellow = SGR(33)
exports.colorBlue = SGR(34)
exports.colorMagenta = SGR(35)
exports.colorCyan = SGR(36)
exports.colorWhite = SGR(37)
exports.colorDefault = SGR(39)
exports.colorBrightBlack = SGR(90)
exports.colorBrightRed = SGR(91)
exports.colorBrightGreen = SGR(92)
exports.colorBrightYellow = SGR(93)
exports.colorBrightBlue = SGR(94)
exports.colorBrightMagenta = SGR(95)
exports.colorBrightCyan = SGR(96)
exports.colorBrightWhite = SGR(97)