turbo-sync/utils/console-colors.js

64 lines
1.6 KiB
JavaScript
Raw Normal View History

2024-10-16 09:22:10 +00:00
// @ts-check
const colorCodes = {
Reset: "\x1b[0m",
Bright: "\x1b[1m",
Dim: "\x1b[2m",
Underscore: "\x1b[4m",
Blink: "\x1b[5m",
Reverse: "\x1b[7m",
Hidden: "\x1b[8m",
FgBlack: "\x1b[30m",
FgRed: "\x1b[31m",
FgGreen: "\x1b[32m",
FgYellow: "\x1b[33m",
FgBlue: "\x1b[34m",
FgMagenta: "\x1b[35m",
FgCyan: "\x1b[36m",
FgWhite: "\x1b[37m",
FgGray: "\x1b[90m",
BgBlack: "\x1b[40m",
BgRed: "\x1b[41m",
BgGreen: "\x1b[42m",
BgYellow: "\x1b[43m",
BgBlue: "\x1b[44m",
BgMagenta: "\x1b[45m",
BgCyan: "\x1b[46m",
BgWhite: "\x1b[47m",
BgGray: "\x1b[100m",
};
/**
* @param {string} text
* @param {"red" | "bright"| "dim"| "underscore" | "blink" | "reverse" | "hidden" | "black" | "green" | "yellow" | "blue" | "magenta" | "cyan" | "white" | "gray"} [type]
* @param {boolean} [bg]
* @returns {string}
*/
function colors(text, type, bg) {
let finalText = ``;
switch (type) {
case "red":
finalText += bg ? colorCodes.BgRed : colorCodes.FgRed;
break;
case "green":
finalText += bg ? colorCodes.BgGreen : colorCodes.FgGrBgGreen;
break;
case "blue":
finalText += bg ? colorCodes.BgBlue : colorCodes.FgGrBgBlue;
break;
default:
finalText += colorCodes.Bright;
break;
}
finalText += `${text}${colorCodes.Reset}`;
console.log("finalText", finalText);
return finalText;
}
module.exports = colors;