diff --git a/index.js b/index.js index 7386b33..9d437b6 100644 --- a/index.js +++ b/index.js @@ -35,95 +35,102 @@ const init = (open, close) => `\x1b[${open}m` ) -export const reset = init(0, 0) -export const bold = raw("\x1b[1m", "\x1b[22m", /\x1b\[22m/g, "\x1b[22m\x1b[1m") -export const dim = raw("\x1b[2m", "\x1b[22m", /\x1b\[22m/g, "\x1b[22m\x1b[2m") -export const italic = init(3, 23) -export const underline = init(4, 24) -export const inverse = init(7, 27) -export const hidden = init(8, 28) -export const strikethrough = init(9, 29) -export const black = init(30, 39) -export const red = init(31, 39) -export const green = init(32, 39) -export const yellow = init(33, 39) -export const blue = init(34, 39) -export const magenta = init(35, 39) -export const cyan = init(36, 39) -export const white = init(37, 39) -export const gray = init(90, 39) -export const bgBlack = init(40, 49) -export const bgRed = init(41, 49) -export const bgGreen = init(42, 49) -export const bgYellow = init(43, 49) -export const bgBlue = init(44, 49) -export const bgMagenta = init(45, 49) -export const bgCyan = init(46, 49) -export const bgWhite = init(47, 49) -export const blackBright = init(90, 39) -export const redBright = init(91, 39) -export const greenBright = init(92, 39) -export const yellowBright = init(93, 39) -export const blueBright = init(94, 39) -export const magentaBright = init(95, 39) -export const cyanBright = init(96, 39) -export const whiteBright = init(97, 39) -export const bgBlackBright = init(100, 49) -export const bgRedBright = init(101, 49) -export const bgGreenBright = init(102, 49) -export const bgYellowBright = init(103, 49) -export const bgBlueBright = init(104, 49) -export const bgMagentaBright = init(105, 49) -export const bgCyanBright = init(106, 49) -export const bgWhiteBright = init(107, 49) +const colors = { + reset: init(0, 0), + bold: raw("\x1b[1m", "\x1b[22m", /\x1b\[22m/g, "\x1b[22m\x1b[1m"), + dim: raw("\x1b[2m", "\x1b[22m", /\x1b\[22m/g, "\x1b[22m\x1b[2m"), + italic: init(3, 23), + underline: init(4, 24), + inverse: init(7, 27), + hidden: init(8, 28), + strikethrough: init(9, 29), + black: init(30, 39), + red: init(31, 39), + green: init(32, 39), + yellow: init(33, 39), + blue: init(34, 39), + magenta: init(35, 39), + cyan: init(36, 39), + white: init(37, 39), + gray: init(90, 39), + bgBlack: init(40, 49), + bgRed: init(41, 49), + bgGreen: init(42, 49), + bgYellow: init(43, 49), + bgBlue: init(44, 49), + bgMagenta: init(45, 49), + bgCyan: init(46, 49), + bgWhite: init(47, 49), + blackBright: init(90, 39), + redBright: init(91, 39), + greenBright: init(92, 39), + yellowBright: init(93, 39), + blueBright: init(94, 39), + magentaBright: init(95, 39), + cyanBright: init(96, 39), + whiteBright: init(97, 39), + bgBlackBright: init(100, 49), + bgRedBright: init(101, 49), + bgGreenBright: init(102, 49), + bgYellowBright: init(103, 49), + bgBlueBright: init(104, 49), + bgMagentaBright: init(105, 49), + bgCyanBright: init(106, 49), + bgWhiteBright: init(107, 49), +} const none = (any) => any export const createColors = ({ useColor = isColorSupported } = {}) => ({ - ...Object.entries({ - reset, - bold, - dim, - italic, - underline, - inverse, - hidden, - strikethrough, - black, - red, - green, - yellow, - blue, - magenta, - cyan, - white, - gray, - bgBlack, - bgRed, - bgGreen, - bgYellow, - bgBlue, - bgMagenta, - bgCyan, - bgWhite, - blackBright, - redBright, - greenBright, - yellowBright, - blueBright, - magentaBright, - cyanBright, - whiteBright, - bgBlackBright, - bgRedBright, - bgGreenBright, - bgYellowBright, - bgBlueBright, - bgMagentaBright, - bgCyanBright, - bgWhiteBright, - }).reduce((colorMap, [key, color]) => ({ - ...colorMap, - [key]: useColor ? color : none, - })), + ...Object.entries(colors).reduce( + (colorMap, [key, color]) => ({ + ...colorMap, + [key]: useColor ? color : none, + }), + {} + ), }) + +export const { + reset, + bold, + dim, + italic, + underline, + inverse, + hidden, + strikethrough, + black, + red, + green, + yellow, + blue, + magenta, + cyan, + white, + gray, + bgBlack, + bgRed, + bgGreen, + bgYellow, + bgBlue, + bgMagenta, + bgCyan, + bgWhite, + blackBright, + redBright, + greenBright, + yellowBright, + blueBright, + magentaBright, + cyanBright, + whiteBright, + bgBlackBright, + bgRedBright, + bgGreenBright, + bgYellowBright, + bgBlueBright, + bgMagentaBright, + bgCyanBright, + bgWhiteBright, +} = createColors()