Last active
January 5, 2024 09:12
-
-
Save maksimr/9ebf148263d2053ffff6590e00b0173e to your computer and use it in GitHub Desktop.
ansicolor typescript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function ansicolor(str: string, colour: | |
| 0 // all attributes off | |
| 1 // bold on | |
| 4 // underline on | |
| 5 // blink on | |
| 21 // bold off | |
| 24 // underline off | |
| 25 // blink off | |
| 30 // bloack foreground | |
| 31 // red foreground | |
| 32 // green foreground | |
| 33 // yellow foreground | |
| 34 // blue foreground | |
| 35 // magenta foreground | |
| 36 // cyan foreground | |
| 37 // white foreground | |
| 39 // default foreground | |
| 40 // black background | |
| 41 // red background | |
| 42 // green background | |
| 43 // yellow background | |
| 44 // blue background | |
| 45 // magenta background | |
| 46 // cyan background | |
| 47 // white background | |
| 49 // default background | |
| 90 // gray foreground | |
| 91 // light red foreground | |
| 92 // light green foreground | |
| 93 // light yellow foreground | |
| 94 // light blue foreground | |
| 95 // light magenta foreground | |
| 96 // light cyan foreground | |
| 97 // light white foreground | |
| 100 // gray background | |
| 101 // light red background | |
| 102 // light green background | |
| 103 // light yellow background | |
| 104 // light blue background | |
| 105 // light magenta background | |
| 106 // light cyan background | |
| 107 // light white background | |
| 'bold' | |
| 'underline' | |
| 'blink' | |
| 'red' | |
| 'green' | |
| 'yellow' | |
| 'blue' | |
| 'magenta' | |
| 'cyan' | |
| 'white' | |
| 'default' | |
| 'gray' | |
| 'light-red' | |
| 'light-green' | |
| 'light-yellow' | |
| 'light-blue' | |
| 'light-magenta' | |
| 'light-cyan' | |
| 'light-white' | |
| 'red-background' | |
| 'green-background' | |
| 'yellow-background' | |
| 'blue-background' | |
| 'magenta-background' | |
| 'cyan-background' | |
| 'white-background' | |
| 'default-background' | |
| 'gray-background' | |
| 'light-red-background' | |
| 'light-green-background' | |
| 'light-yellow-background' | |
| 'light-blue-background' | |
| 'light-magenta-background' | |
| 'light-cyan-background' | |
| 'light-white-background' | |
| number | |
) { | |
if (!process.stdout.isTTY) { | |
return str; | |
} | |
switch (colour) { | |
case 'bold': colour = 1; break; | |
case 'underline': colour = 4; break; | |
case 'blink': colour = 5; break; | |
case 'red': colour = 31; break; | |
case 'green': colour = 32; break; | |
case 'yellow': colour = 33; break; | |
case 'blue': colour = 34; break; | |
case 'magenta': colour = 35; break; | |
case 'cyan': colour = 36; break; | |
case 'white': colour = 37; break; | |
case 'default': colour = 39; break; | |
case 'gray': colour = 90; break; | |
case 'light-red': colour = 91; break; | |
case 'light-green': colour = 92; break; | |
case 'light-yellow': colour = 93; break; | |
case 'light-blue': colour = 94; break; | |
case 'light-magenta': colour = 95; break; | |
case 'light-cyan': colour = 96; break; | |
case 'light-white': colour = 97; break; | |
case 'red-background': colour = 41; break; | |
case 'green-background': colour = 42; break; | |
case 'yellow-background': colour = 43; break; | |
case 'blue-background': colour = 44; break; | |
case 'magenta-background': colour = 45; break; | |
case 'cyan-background': colour = 46; break; | |
case 'white-background': colour = 47; break; | |
case 'default-background': colour = 49; break; | |
case 'gray-background': colour = 100; break; | |
case 'light-red-background': colour = 101; break; | |
case 'light-green-background': colour = 102; break; | |
case 'light-yellow-background': colour = 103; break; | |
case 'light-blue-background': colour = 104; break; | |
case 'light-magenta-background': colour = 105; break; | |
case 'light-cyan-background': colour = 106; break; | |
case 'light-white-background': colour = 107; break; | |
} | |
return `\x1b[${colour}m${str}\x1b[0m`; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment