aboutsummaryrefslogtreecommitdiff
path: root/node_modules/sisteransi/src/index.js
diff options
context:
space:
mode:
authorJoel Kronqvist <joel.h.kronqvist@gmail.com>2022-03-05 19:02:27 +0200
committerJoel Kronqvist <joel.h.kronqvist@gmail.com>2022-03-05 19:02:27 +0200
commit5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch)
tree360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/sisteransi/src/index.js
parentb500a50f1b97d93c98b36ed9a980f8188d648147 (diff)
downloadLYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz
LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/sisteransi/src/index.js')
-rw-r--r--node_modules/sisteransi/src/index.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/node_modules/sisteransi/src/index.js b/node_modules/sisteransi/src/index.js
new file mode 100644
index 0000000..7034e2e
--- /dev/null
+++ b/node_modules/sisteransi/src/index.js
@@ -0,0 +1,58 @@
+'use strict';
+
+const ESC = '\x1B';
+const CSI = `${ESC}[`;
+const beep = '\u0007';
+
+const cursor = {
+ to(x, y) {
+ if (!y) return `${CSI}${x + 1}G`;
+ return `${CSI}${y + 1};${x + 1}H`;
+ },
+ move(x, y) {
+ let ret = '';
+
+ if (x < 0) ret += `${CSI}${-x}D`;
+ else if (x > 0) ret += `${CSI}${x}C`;
+
+ if (y < 0) ret += `${CSI}${-y}A`;
+ else if (y > 0) ret += `${CSI}${y}B`;
+
+ return ret;
+ },
+ up: (count = 1) => `${CSI}${count}A`,
+ down: (count = 1) => `${CSI}${count}B`,
+ forward: (count = 1) => `${CSI}${count}C`,
+ backward: (count = 1) => `${CSI}${count}D`,
+ nextLine: (count = 1) => `${CSI}E`.repeat(count),
+ prevLine: (count = 1) => `${CSI}F`.repeat(count),
+ left: `${CSI}G`,
+ hide: `${CSI}?25l`,
+ show: `${CSI}?25h`,
+ save: `${ESC}7`,
+ restore: `${ESC}8`
+}
+
+const scroll = {
+ up: (count = 1) => `${CSI}S`.repeat(count),
+ down: (count = 1) => `${CSI}T`.repeat(count)
+}
+
+const erase = {
+ screen: `${CSI}2J`,
+ up: (count = 1) => `${CSI}1J`.repeat(count),
+ down: (count = 1) => `${CSI}J`.repeat(count),
+ line: `${CSI}2K`,
+ lineEnd: `${CSI}K`,
+ lineStart: `${CSI}1K`,
+ lines(count) {
+ let clear = '';
+ for (let i = 0; i < count; i++)
+ clear += this.line + (i < count - 1 ? cursor.up() : '');
+ if (count)
+ clear += cursor.left;
+ return clear;
+ }
+}
+
+module.exports = { cursor, scroll, erase, beep };