dyetty/index.ts

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) }