diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
commit | cc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch) | |
tree | 92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/slice-ansi/index.js | |
parent | 3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff) |
remove node_modules
Diffstat (limited to 'node_modules/slice-ansi/index.js')
-rwxr-xr-x | node_modules/slice-ansi/index.js | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/node_modules/slice-ansi/index.js b/node_modules/slice-ansi/index.js deleted file mode 100755 index 634ee9c7b..000000000 --- a/node_modules/slice-ansi/index.js +++ /dev/null @@ -1,88 +0,0 @@ -'use strict'; -const isFullwidthCodePoint = require('is-fullwidth-code-point'); - -const ESCAPES = [ - '\u001B', - '\u009B' -]; - -const END_CODE = 39; -const ASTRAL_REGEX = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; - -const ESCAPE_CODES = new Map([ - [0, 0], - [1, 22], - [2, 22], - [3, 23], - [4, 24], - [7, 27], - [8, 28], - [9, 29], - [30, 39], - [31, 39], - [32, 39], - [33, 39], - [34, 39], - [35, 39], - [36, 39], - [37, 39], - [90, 39], - [40, 49], - [41, 49], - [42, 49], - [43, 49], - [44, 49], - [45, 49], - [46, 49], - [47, 49] -]); - -const wrapAnsi = code => `${ESCAPES[0]}[${code}m`; - -module.exports = (str, begin, end) => { - const arr = Array.from(str.normalize()); - - end = typeof end === 'number' ? end : arr.length; - - let insideEscape = false; - let escapeCode; - let visible = 0; - let output = ''; - - for (const item of arr.entries()) { - const i = item[0]; - const x = item[1]; - - let leftEscape = false; - - if (ESCAPES.indexOf(x) !== -1) { - insideEscape = true; - const code = /\d[^m]*/.exec(str.slice(i, i + 4)); - escapeCode = code === END_CODE ? null : code; - } else if (insideEscape && x === 'm') { - insideEscape = false; - leftEscape = true; - } - - if (!insideEscape && !leftEscape) { - ++visible; - } - - if (!ASTRAL_REGEX.test(x) && isFullwidthCodePoint(x.codePointAt())) { - ++visible; - } - - if (visible > begin && visible <= end) { - output += x; - } else if (visible === begin && !insideEscape && escapeCode !== undefined && escapeCode !== END_CODE) { - output += wrapAnsi(escapeCode); - } else if (visible >= end) { - if (escapeCode !== undefined) { - output += wrapAnsi(ESCAPE_CODES.get(parseInt(escapeCode, 10)) || END_CODE); - } - break; - } - } - - return output; -}; |