// Copyright Jorge Bucaran. All rights reserved. MIT license. // deno-lint-ignore-file no-undef no-control-regex let enabled = !("NO_COLOR" in process.env) && ("FORCE_COLOR" in process.env || process.platform === "win32" || (process.stdout != null && process.stdout.isTTY && process.env.TERM && process.env.TERM !== "dumb")); const raw = (open, close, searchRegex, replaceValue) => (s) => enabled ? open + (~(s += "").indexOf(close, 4) // skip opening \x1b[ ? s.replace(searchRegex, replaceValue) : s) + close : s; const init = (open, close) => { return raw( `\x1b[${open}m`, `\x1b[${close}m`, new RegExp(`\\x1b\\[${close}m`, "g"), `\x1b[${open}m`, ); }; export const options = Object.defineProperty({}, "enabled", { get: () => enabled, set: (value) => (enabled = value), }); 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);