summaryrefslogtreecommitdiff
path: root/ext/console/01_colors.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/console/01_colors.js')
-rw-r--r--ext/console/01_colors.js209
1 files changed, 103 insertions, 106 deletions
diff --git a/ext/console/01_colors.js b/ext/console/01_colors.js
index 00425f08b..d01edd247 100644
--- a/ext/console/01_colors.js
+++ b/ext/console/01_colors.js
@@ -2,110 +2,107 @@
/// <reference path="../../core/internal.d.ts" />
-"use strict";
-
-((window) => {
- const {
- RegExp,
- StringPrototypeReplace,
- ArrayPrototypeJoin,
- } = window.__bootstrap.primordials;
-
- let noColor = false;
-
- function setNoColor(value) {
- noColor = value;
- }
-
- function getNoColor() {
- return noColor;
- }
-
- function code(open, close) {
- return {
- open: `\x1b[${open}m`,
- close: `\x1b[${close}m`,
- regexp: new RegExp(`\\x1b\\[${close}m`, "g"),
- };
- }
-
- function run(str, code) {
- return `${code.open}${
- StringPrototypeReplace(str, code.regexp, code.open)
- }${code.close}`;
- }
-
- function bold(str) {
- return run(str, code(1, 22));
- }
-
- function italic(str) {
- return run(str, code(3, 23));
- }
-
- function yellow(str) {
- return run(str, code(33, 39));
- }
-
- function cyan(str) {
- return run(str, code(36, 39));
- }
-
- function red(str) {
- return run(str, code(31, 39));
- }
-
- function green(str) {
- return run(str, code(32, 39));
- }
-
- function bgRed(str) {
- return run(str, code(41, 49));
- }
-
- function white(str) {
- return run(str, code(37, 39));
- }
-
- function gray(str) {
- return run(str, code(90, 39));
- }
-
- function magenta(str) {
- return run(str, code(35, 39));
- }
-
- // https://github.com/chalk/ansi-regex/blob/02fa893d619d3da85411acc8fd4e2eea0e95a9d9/index.js
- const ANSI_PATTERN = new RegExp(
- ArrayPrototypeJoin([
- "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
- "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))",
- ], "|"),
- "g",
- );
-
- function stripColor(string) {
- return StringPrototypeReplace(string, ANSI_PATTERN, "");
- }
-
- function maybeColor(fn) {
- return !noColor ? fn : (s) => s;
- }
-
- window.__bootstrap.colors = {
- bold,
- italic,
- yellow,
- cyan,
- red,
- green,
- bgRed,
- white,
- gray,
- magenta,
- stripColor,
- maybeColor,
- setNoColor,
- getNoColor,
+const primordials = globalThis.__bootstrap.primordials;
+const {
+ RegExp,
+ StringPrototypeReplace,
+ ArrayPrototypeJoin,
+} = primordials;
+
+let noColor = false;
+
+function setNoColor(value) {
+ noColor = value;
+}
+
+function getNoColor() {
+ return noColor;
+}
+
+function code(open, close) {
+ return {
+ open: `\x1b[${open}m`,
+ close: `\x1b[${close}m`,
+ regexp: new RegExp(`\\x1b\\[${close}m`, "g"),
};
-})(this);
+}
+
+function run(str, code) {
+ return `${code.open}${
+ StringPrototypeReplace(str, code.regexp, code.open)
+ }${code.close}`;
+}
+
+function bold(str) {
+ return run(str, code(1, 22));
+}
+
+function italic(str) {
+ return run(str, code(3, 23));
+}
+
+function yellow(str) {
+ return run(str, code(33, 39));
+}
+
+function cyan(str) {
+ return run(str, code(36, 39));
+}
+
+function red(str) {
+ return run(str, code(31, 39));
+}
+
+function green(str) {
+ return run(str, code(32, 39));
+}
+
+function bgRed(str) {
+ return run(str, code(41, 49));
+}
+
+function white(str) {
+ return run(str, code(37, 39));
+}
+
+function gray(str) {
+ return run(str, code(90, 39));
+}
+
+function magenta(str) {
+ return run(str, code(35, 39));
+}
+
+// https://github.com/chalk/ansi-regex/blob/02fa893d619d3da85411acc8fd4e2eea0e95a9d9/index.js
+const ANSI_PATTERN = new RegExp(
+ ArrayPrototypeJoin([
+ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
+ "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))",
+ ], "|"),
+ "g",
+);
+
+function stripColor(string) {
+ return StringPrototypeReplace(string, ANSI_PATTERN, "");
+}
+
+function maybeColor(fn) {
+ return !noColor ? fn : (s) => s;
+}
+
+export {
+ bgRed,
+ bold,
+ cyan,
+ getNoColor,
+ gray,
+ green,
+ italic,
+ magenta,
+ maybeColor,
+ red,
+ setNoColor,
+ stripColor,
+ white,
+ yellow,
+};