UNPKG

yite-cli

Version:

专注于vite + vue3 的项目开发脚手架

84 lines (72 loc) 3.09 kB
// Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov let p = process || {}, argv = p.argv || [], env = p.env || {}; let isColorSupported = !(!!env.NO_COLOR || argv.includes('--no-color')) && (!!env.FORCE_COLOR || argv.includes('--color') || p.platform === 'win32' || ((p.stdout || {}).isTTY && env.TERM !== 'dumb') || !!env.CI); let formatter = (open, close, replace = open) => (input) => { let string = '' + input, index = string.indexOf(close, open.length); return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; }; let replaceClose = (string, close, replace, index) => { let result = '', cursor = 0; do { result += string.substring(cursor, index) + replace; cursor = index + close.length; index = string.indexOf(close, cursor); } while (~index); return result + string.substring(cursor); }; let createColors = (enabled = isColorSupported) => { let f = enabled ? formatter : () => String; return { // 符号 isColorSupported: enabled, reset: f('\x1b[0m', '\x1b[0m'), bold: f('\x1b[1m', '\x1b[22m', '\x1b[22m\x1b[1m'), dim: f('\x1b[2m', '\x1b[22m', '\x1b[22m\x1b[2m'), italic: f('\x1b[3m', '\x1b[23m'), underline: f('\x1b[4m', '\x1b[24m'), inverse: f('\x1b[7m', '\x1b[27m'), hidden: f('\x1b[8m', '\x1b[28m'), strikethrough: f('\x1b[9m', '\x1b[29m'), black: f('\x1b[30m', '\x1b[39m'), red: f('\x1b[31m', '\x1b[39m'), green: f('\x1b[32m', '\x1b[39m'), yellow: f('\x1b[33m', '\x1b[39m'), blue: f('\x1b[34m', '\x1b[39m'), magenta: f('\x1b[35m', '\x1b[39m'), cyan: f('\x1b[36m', '\x1b[39m'), white: f('\x1b[37m', '\x1b[39m'), gray: f('\x1b[90m', '\x1b[39m'), bgBlack: f('\x1b[40m', '\x1b[49m'), bgRed: f('\x1b[41m', '\x1b[49m'), bgGreen: f('\x1b[42m', '\x1b[49m'), bgYellow: f('\x1b[43m', '\x1b[49m'), bgBlue: f('\x1b[44m', '\x1b[49m'), bgMagenta: f('\x1b[45m', '\x1b[49m'), bgCyan: f('\x1b[46m', '\x1b[49m'), bgWhite: f('\x1b[47m', '\x1b[49m'), blackBright: f('\x1b[90m', '\x1b[39m'), redBright: f('\x1b[91m', '\x1b[39m'), greenBright: f('\x1b[92m', '\x1b[39m'), yellowBright: f('\x1b[93m', '\x1b[39m'), blueBright: f('\x1b[94m', '\x1b[39m'), magentaBright: f('\x1b[95m', '\x1b[39m'), cyanBright: f('\x1b[96m', '\x1b[39m'), whiteBright: f('\x1b[97m', '\x1b[39m'), bgBlackBright: f('\x1b[100m', '\x1b[49m'), bgRedBright: f('\x1b[101m', '\x1b[49m'), bgGreenBright: f('\x1b[102m', '\x1b[49m'), bgYellowBright: f('\x1b[103m', '\x1b[49m'), bgBlueBright: f('\x1b[104m', '\x1b[49m'), bgMagentaBright: f('\x1b[105m', '\x1b[49m'), bgCyanBright: f('\x1b[106m', '\x1b[49m'), bgWhiteBright: f('\x1b[107m', '\x1b[49m') }; }; const colors = createColors(); export { colors };