coa-echo
Version:
Lightweight console color logger for node.js
79 lines (78 loc) • 2.14 kB
JavaScript
"use strict";
var _a, _b;
Object.defineProperty(exports, "__esModule", { value: true });
exports.warpColor = exports.write = void 0;
const os = require("os");
const hasColors = (_b = (_a = process.stdout).hasColors) === null || _b === void 0 ? void 0 : _b.call(_a);
const styles = {
reset: [0, 0],
bold: [1, 22],
dim: [2, 22],
italic: [3, 23],
underline: [4, 24],
inverse: [7, 27],
hidden: [8, 28],
strikethrough: [9, 29],
black: [30, 39],
red: [31, 39],
green: [32, 39],
yellow: [33, 39],
blue: [34, 39],
magenta: [35, 39],
cyan: [36, 39],
white: [37, 39],
gray: [90, 39],
grey: [90, 39],
brightRed: [91, 39],
brightGreen: [92, 39],
brightYellow: [93, 39],
brightBlue: [94, 39],
brightMagenta: [95, 39],
brightCyan: [96, 39],
brightWhite: [97, 39],
bgBlack: [40, 49],
bgRed: [41, 49],
bgGreen: [42, 49],
bgYellow: [43, 49],
bgBlue: [44, 49],
bgMagenta: [45, 49],
bgCyan: [46, 49],
bgWhite: [47, 49],
bgGray: [100, 49],
bgGrey: [100, 49],
bgBrightRed: [101, 49],
bgBrightGreen: [102, 49],
bgBrightYellow: [103, 49],
bgBrightBlue: [104, 49],
bgBrightMagenta: [105, 49],
bgBrightCyan: [106, 49],
bgBrightWhite: [107, 49],
// legacy styles for colors pre v1.0.0
blackBG: [40, 49],
redBG: [41, 49],
greenBG: [42, 49],
yellowBG: [43, 49],
blueBG: [44, 49],
magentaBG: [45, 49],
cyanBG: [46, 49],
whiteBG: [47, 49],
};
// stdout输出
function write(color, text) {
// 如果支持颜色,则添加颜色属性
if (hasColors && color !== '')
text = warpColor(color, text);
// 输出
process.stdout.write(text + os.EOL);
}
exports.write = write;
// 添加颜色
function warpColor(color, text) {
var _a;
// 如果支持颜色,则包裹颜色标识
const style = (_a = styles[color]) !== null && _a !== void 0 ? _a : styles.reset;
const open = '\u001b[' + style[0].toString() + 'm';
const close = '\u001b[' + style[1].toString() + 'm';
return open + text + close;
}
exports.warpColor = warpColor;