106 lines
4.6 KiB
TypeScript
106 lines
4.6 KiB
TypeScript
|
const resetEsc = 0;
|
||
|
const boldEsc = 1;
|
||
|
const dimEsc = 2;
|
||
|
const italicEsc = 3;
|
||
|
const underlineEsc = 4;
|
||
|
const overlineEsc = 53;
|
||
|
const inverseEsc = 7;
|
||
|
const hiddenEsc = 8;
|
||
|
const strikethroughEsc = 9;
|
||
|
|
||
|
const blackEsc = 30;
|
||
|
const redEsc = 31;
|
||
|
const greenEsc = 32;
|
||
|
const yellowEsc = 33;
|
||
|
const blueEsc = 34;
|
||
|
const magentaEsc = 35;
|
||
|
const cyanEsc = 36;
|
||
|
const whiteEsc = 37;
|
||
|
const grayEsc = 90;
|
||
|
|
||
|
const redBrightEsc = 91;
|
||
|
const greenBrightEsc = 92;
|
||
|
const yellowBrightEsc = 93;
|
||
|
const blueBrightEsc = 94;
|
||
|
const magentaBrightEsc = 95;
|
||
|
const cyanBrightEsc = 96;
|
||
|
const whiteBrightEsc = 97;
|
||
|
|
||
|
const bgBlackEsc = 40;
|
||
|
const bgRedEsc = 41;
|
||
|
const bgGreenEsc = 42;
|
||
|
const bgYellowEsc = 43;
|
||
|
const bgBlueEsc = 44;
|
||
|
const bgMagentaEsc = 45;
|
||
|
const bgCyanEsc = 46;
|
||
|
const bgWhiteEsc = 47;
|
||
|
const bgGrayEsc = 100;
|
||
|
|
||
|
const bgRedBrightEsc = 101;
|
||
|
const bgGreenBrightEsc = 102;
|
||
|
const bgYellowBrightEsc = 103;
|
||
|
const bgBlueBrightEsc = 104;
|
||
|
const bgMagentaBrightEsc = 105;
|
||
|
const bgCyanBrightEsc = 106;
|
||
|
const bgWhiteBrightEsc = 107;
|
||
|
|
||
|
const STRING_RESET_ESC = `\u001b[${resetEsc}m`;
|
||
|
function format(format:number, s:string) : string {
|
||
|
// Exclude reset escapes if already present
|
||
|
if (s.endsWith(STRING_RESET_ESC)) {
|
||
|
return `\u001b[${format}m${s}`;
|
||
|
}
|
||
|
|
||
|
return `\u001b[${format}m${s}${STRING_RESET_ESC}`;
|
||
|
}
|
||
|
|
||
|
// Generic
|
||
|
export function bold(s:string) : string { return format(boldEsc, s) }
|
||
|
export function dim(s:string) : string { return format(dimEsc, s) }
|
||
|
export function italic(s:string) : string { return format(italicEsc, s) }
|
||
|
export function underline(s:string) : string { return format(underlineEsc, s) }
|
||
|
export function overline(s:string) : string { return format(overlineEsc, s) }
|
||
|
export function inverse(s:string) : string { return format(inverseEsc, s) }
|
||
|
export function hidden(s:string) : string { return format(hiddenEsc, s) }
|
||
|
export function strikethrough(s:string) : string { return format(strikethroughEsc, s) }
|
||
|
|
||
|
// Colours
|
||
|
export function black(s:string) : string { return format(blackEsc, s) }
|
||
|
export function red(s:string) : string { return format(redEsc, s) }
|
||
|
export function green(s:string) : string { return format(greenEsc, s) }
|
||
|
export function yellow(s:string) : string { return format(yellowEsc, s) }
|
||
|
export function blue(s:string) : string { return format(blueEsc, s) }
|
||
|
export function magenta(s:string) : string { return format(magentaEsc, s) }
|
||
|
export function cyan(s:string) : string { return format(cyanEsc, s) }
|
||
|
export function white(s:string) : string { return format(whiteEsc, s) }
|
||
|
export function gray(s:string) : string { return format(grayEsc, s) }
|
||
|
export function grey(s:string) : string { return gray(s) }
|
||
|
|
||
|
export function blackBright(s:string) : string { return gray(s) }
|
||
|
export function redBright(s:string) : string { return format(redBrightEsc, s) }
|
||
|
export function greenBright(s:string) : string { return format(greenBrightEsc, s) }
|
||
|
export function yellowBright(s:string) : string { return format(yellowBrightEsc, s) }
|
||
|
export function blueBright(s:string) : string { return format(blueBrightEsc, s) }
|
||
|
export function magentaBright(s:string) : string { return format(magentaBrightEsc, s) }
|
||
|
export function cyanBright(s:string) : string { return format(cyanBrightEsc, s) }
|
||
|
export function whiteBright(s:string) : string { return format(whiteBrightEsc, s) }
|
||
|
|
||
|
export function bgBlack(s:string) : string { return format(bgBlackEsc, s) }
|
||
|
export function bgRed(s:string) : string { return format(bgRedEsc, s) }
|
||
|
export function bgGreen(s:string) : string { return format(bgGreenEsc, s) }
|
||
|
export function bgYellow(s:string) : string { return format(bgYellowEsc, s) }
|
||
|
export function bgBlue(s:string) : string { return format(bgBlueEsc, s) }
|
||
|
export function bgMagenta(s:string) : string { return format(bgMagentaEsc, s) }
|
||
|
export function bgCyan(s:string) : string { return format(bgCyanEsc, s) }
|
||
|
export function bgWhite(s:string) : string { return format(bgWhiteEsc, s) }
|
||
|
export function bgGray(s:string) : string { return format(bgGrayEsc, s) }
|
||
|
export function bgGrey(s:string) : string { return bgGray(s) }
|
||
|
|
||
|
export function bgBlackBright(s:string) : string { return bgGray(s) }
|
||
|
export function bgRedBright(s:string) : string { return format(bgRedBrightEsc, s) }
|
||
|
export function bgGreenBright(s:string) : string { return format(bgGreenBrightEsc, s) }
|
||
|
export function bgYellowBright(s:string) : string { return format(bgYellowBrightEsc, s) }
|
||
|
export function bgBlueBright(s:string) : string { return format(bgBlueBrightEsc, s) }
|
||
|
export function bgMagentaBright(s:string) : string { return format(bgMagentaBrightEsc, s) }
|
||
|
export function bgCyanBright(s:string) : string { return format(bgCyanBrightEsc, s) }
|
||
|
export function bgWhiteBright(s:string) : string { return format(bgWhiteBrightEsc, s) }
|