@opentf/cli-styles
Version:
Style your CLI text using ANSI escape sequences.
1 lines • 21.8 kB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts","../src/style.ts","../src/applyStyles.ts","../src/constants.ts","../src/processStyles.ts","../src/isSupportsColor.ts","../src/parser.ts"],"sourcesContent":["import style from './style';\n\nexport { style };\n","import { isStr, shallowMerge } from '@opentf/std';\nimport applyStyles from './applyStyles';\nimport isSupportsColor from './isSupportsColor';\nimport parser, { type StyleObj } from './parser';\n\nfunction renderWithStyles(obj: StyleObj, color: boolean) {\n let out = '';\n\n obj.text.forEach((t) => {\n if (isStr(t)) {\n out += color ? applyStyles(t, obj.styles) : t;\n } else {\n out += renderWithStyles(t, color);\n }\n });\n\n return out;\n}\n\nfunction render(arr: (string | StyleObj)[], color: boolean) {\n return arr.reduce((acc, cur) => {\n return (acc += isStr(cur) ? cur : renderWithStyles(cur, color));\n }, '') as string;\n}\n\ntype Options = {\n color?: boolean;\n};\n\nexport default function style(str: string, options?: Options): string {\n const opts = shallowMerge(\n { color: true },\n options as object\n ) as Required<Options>;\n if (opts.color) {\n opts.color = isSupportsColor();\n }\n const parsedValue = parser(str);\n\n return render(parsedValue, opts.color);\n}\n","import { isEmpty } from '@opentf/std';\nimport { ANSI_END, ANSI_START, RESET } from './constants';\nimport processStyles from './processStyles';\n\nexport default function applyStyles(str: string, styles: string): string {\n if (!styles) {\n return str;\n }\n\n let out = '';\n const styleMap = processStyles(styles);\n\n if (isEmpty(styleMap)) {\n return str;\n }\n\n for (const v of styleMap.values()) {\n out += ANSI_START + v.code + v.value + ANSI_END;\n }\n\n return out + str + RESET;\n}\n","export const ANSI_START = '\\x1B[';\n\nexport const ANSI_END = 'm';\n\nexport const RESET = '\\x1B[0m';\n\nexport const FG_CODE = '38;2;';\n\nexport const BG_CODE = '48;2;';\n\nexport const UND_COLOR_CODE = '58:2:0:';\n\nexport const STANDARD_COLORS: Record<string, string> = {\n r: '255;65;54', // Red\n g: '46;204;64', // Green\n b: '0;116;217', // Blue\n o: '255;133;27', // Orange\n y: '255;220;0', // Yellow\n w: '255;255;255', // White\n bl: '17;17;17', // Black\n gr: '170;170;170', // Grey\n m: '255;105;193', // Magenta\n c: '154;236;254', // Cyan\n n: '0;31;63', // Navy\n a: '127;219;255', // Aqua\n t: '57;204;204', // Teal\n p: '177;13;201', // Purple\n f: '240;18;190', // Fuchsia\n ma: '133;20;75', // Maroon\n ol: '61;153;112', // Olive\n li: '1;255;112', // Lime\n s: '221;221;221', // Silver\n pi: '255;191;203', // Pink\n} as const;\n\nexport const MODIFIERS = {\n dfg: '39', // Default foreground color\n dbg: '49', // Default background color\n res: '0', // Reset\n nor: '22', // Normal intensity\n blk: '5', // Blink\n nob: '25', // No Blink\n hid: '8', // Hidden\n vis: '28', // Visible\n ovl: '53', // Overline\n noo: '55', // No Overline\n bol: '1', // Bold\n dim: '2', // Dimmed text\n ita: '3', // Italic\n inv: '7', // Inverse fg to bg & vice versa\n noi: '27', // Not inversed\n str: '9', // Strikethrough\n nos: '29', // No Strikethrough\n und: '4', // Straight underline\n dbu: '21', // Double underline\n nou: '24', // No underline\n cru: '4:3', // Curly underline\n dou: '4:4', // Dotted underline\n dau: '4:5', // Dashed underline\n ruc: '59', // Reset underline color\n} as const;\n","import { hexToRGB } from '@opentf/std';\nimport {\n BG_CODE,\n FG_CODE,\n MODIFIERS,\n STANDARD_COLORS,\n UND_COLOR_CODE,\n} from './constants';\n\nconst colorKeys = Object.keys(STANDARD_COLORS);\n\nfunction dimColor(color: string) {\n return color\n .split(';')\n .map((c) => parseInt(c) * (1 / 2))\n .map((c) => Math.floor(c))\n .join(';');\n}\n\nexport default function processStyles(styles: string) {\n const arr = styles.split('.');\n const map = new Map();\n\n for (let i = 0; i < arr.length; i++) {\n const style = arr[i] as string;\n\n if (style === 'dfg') {\n map.delete('color');\n map.set('dfg', { value: MODIFIERS[style], code: '' });\n }\n\n if (colorKeys.includes(style)) {\n map.delete('dfg');\n let value;\n if (map.has('color') && map.get('color').dim) {\n value = dimColor(STANDARD_COLORS[style] as string);\n map.set('color', {\n value,\n code: FG_CODE,\n dim: true,\n color: STANDARD_COLORS[style],\n });\n continue;\n } else if (map.has('dim')) {\n value = dimColor(STANDARD_COLORS[style] as string);\n map.delete('dim');\n map.set('color', {\n value,\n code: FG_CODE,\n dim: true,\n color: STANDARD_COLORS[style],\n });\n continue;\n } else {\n value = STANDARD_COLORS[style];\n }\n map.set('color', { value, code: FG_CODE, color: value });\n continue;\n }\n\n if (style === 'dim') {\n if (map.has('color')) {\n const obj = map.get('color');\n map.set('color', {\n ...obj,\n value: dimColor(obj.value),\n dim: true,\n });\n } else {\n map.set('dim', { value: MODIFIERS[style], code: '' });\n }\n continue;\n }\n\n if (style.startsWith('rgb')) {\n const s = style\n .slice(4, -1)\n .split(',')\n .map((v) => v.trim())\n .join(';');\n\n if (!s) {\n continue;\n }\n\n map.delete('fg');\n map.set('color', { value: s, code: FG_CODE });\n continue;\n }\n\n if (style.startsWith('hex')) {\n map.delete('fg');\n const rgb = hexToRGB(style.slice(4, -1)).join(';');\n map.set('color', {\n value: rgb,\n code: FG_CODE,\n });\n continue;\n }\n\n if (style.startsWith('bghex')) {\n map.delete('bg');\n const rgb = hexToRGB(style.slice(6, -1)).join(';');\n map.set('bgcolor', {\n value: rgb,\n code: BG_CODE,\n });\n continue;\n }\n\n if (style.startsWith('bgrgb')) {\n const s = style\n .slice(6, -1)\n .split(',')\n .map((v) => v.trim())\n .join(';');\n if (!s) {\n continue;\n }\n map.delete('fg');\n map.set('bgcolor', {\n value: s,\n code: BG_CODE,\n });\n continue;\n }\n\n if (style.startsWith('bg') && colorKeys.includes(style.slice(2))) {\n map.delete('bg');\n map.set('bgcolor', {\n value: STANDARD_COLORS[style.slice(2)],\n code: BG_CODE,\n });\n continue;\n }\n\n if (style === 'dbg') {\n map.delete('bgcolor');\n map.set('dbg', { value: MODIFIERS[style], code: '' });\n }\n\n if (style === 'bol') {\n map.delete('nor');\n map.set('bold', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'res') {\n map.clear();\n map.set('reset', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'dfg') {\n map.delete('color');\n map.set('dfg', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'nor') {\n map.delete('bold');\n if (map.has('color') && map.get('color').dim) {\n const obj = map.get('color');\n map.set('color', {\n ...obj,\n value: obj.color,\n });\n }\n map.set('nor', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'hid') {\n map.delete('vis');\n map.set('hid', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'vis') {\n map.delete('hid');\n map.set('vis', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'inv') {\n map.delete('noi');\n map.set('inv', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'noi') {\n map.delete('inv');\n map.set('noi', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'blk') {\n map.delete('nob');\n map.set('blk', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'nob') {\n map.delete('blk');\n map.set('nob', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'ovl') {\n map.delete('noo');\n map.set('ovl', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'noo') {\n map.delete('ovl');\n map.set('noo', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'str') {\n map.delete('nos');\n map.set('str', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'nos') {\n map.delete('str');\n map.set('nos', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'ita') {\n map.set('ita', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style.startsWith('urgb')) {\n const s = style\n .slice(5, -1)\n .split(',')\n .map((v) => v.trim())\n .join(':');\n map.set('uColor', { value: s, code: UND_COLOR_CODE });\n continue;\n }\n\n if (['und', 'dbu', 'cru', 'dou', 'dau'].includes(style)) {\n map.delete('nou');\n map.set('und', {\n value: MODIFIERS[style as keyof typeof MODIFIERS],\n code: '',\n });\n continue;\n }\n\n if (style === 'nou') {\n map.delete('und');\n map.set('nou', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style === 'ruc') {\n map.delete('uColor');\n map.set('ruc', { value: MODIFIERS[style], code: '' });\n continue;\n }\n\n if (style.startsWith('u') && colorKeys.includes(style.slice(1))) {\n map.set('uColor', {\n value: STANDARD_COLORS[style.slice(1)]?.replaceAll(';', ':'),\n code: UND_COLOR_CODE,\n });\n }\n }\n\n return map;\n}\n","import { release } from 'node:os';\n\nexport default function isSupportsColor() {\n const { env, argv } = process;\n\n if (Object.hasOwn(env, 'FORCE_COLOR')) {\n if (parseInt(env['FORCE_COLOR'] as string) === 3) {\n return true;\n }\n\n return false;\n }\n\n if (\n argv.includes('--no-color') ||\n argv.includes('--color=false') ||\n env['NO_COLOR']\n ) {\n return false;\n }\n\n if (env['COLORTERM'] === 'truecolor') {\n return true;\n }\n\n // Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n if (process.platform === 'win32') {\n const build = release().split('.')[2] as string;\n if (+build > 14931) {\n return true;\n }\n }\n\n return false;\n}\n","export type StyleObj = {\n text: string[];\n styles: string;\n};\n\nfunction parseSyntax(\n str: string,\n start: number,\n styles = ''\n): [string | StyleObj, number] {\n const text = [];\n let tempStr = '';\n let styleStr = '';\n let open = false;\n let cursor = start + 1;\n let strStart = start;\n const getCurStyles = () =>\n styles.length > 0 ? styles + '.' + styleStr : styleStr;\n\n for (; cursor < str.length; cursor++) {\n const c = str[cursor];\n\n if (open) {\n if (c === '\\\\') {\n tempStr += str[cursor + 1];\n cursor++;\n continue;\n }\n\n if (c === '}') {\n text.push(tempStr);\n open = false;\n return [{ text, styles: getCurStyles() } as StyleObj, cursor];\n }\n\n if (c === '$') {\n text.push({ text: [tempStr], styles: getCurStyles() });\n const [obj, cur] = parseSyntax(str, cursor, getCurStyles());\n text.push(obj);\n cursor = cur;\n tempStr = '';\n continue;\n }\n\n tempStr += c;\n continue;\n }\n\n if (c === '{') {\n open = true;\n continue;\n }\n\n if (c === '$') {\n text.push(str.substring(strStart, cursor));\n styleStr = '';\n const [obj, cur] = parseSyntax(str, cursor, styles);\n text.push(obj);\n cursor = cur;\n tempStr = '';\n strStart = cur + 1;\n continue;\n }\n\n styleStr += c;\n }\n\n if (!open && text.length === 0) {\n return [str.substring(strStart, cursor), cursor];\n }\n\n text.push(styleStr);\n\n return [{ text, styles: getCurStyles() } as StyleObj, cursor];\n}\n\nexport default function parser(str: string) {\n const arr = [];\n let s = '';\n\n for (let i = 0; i < str.length; i++) {\n const c = str[i] as string;\n if (c === '$') {\n const [obj, cursor] = parseSyntax(str, i);\n arr.push(s);\n arr.push(obj);\n i = cursor as number;\n s = '';\n continue;\n }\n s += c;\n }\n\n arr.push(s);\n\n return arr;\n}\n"],"mappings":"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","names":["src_exports","__export","style","__toCommonJS","import_std","import_std","ANSI_START","ANSI_END","RESET","FG_CODE","BG_CODE","UND_COLOR_CODE","STANDARD_COLORS","MODIFIERS","import_std","colorKeys","STANDARD_COLORS","dimColor","color","c","processStyles","styles","arr","map","i","style","MODIFIERS","value","FG_CODE","obj","s","v","rgb","BG_CODE","UND_COLOR_CODE","applyStyles","str","styles","out","styleMap","processStyles","v","ANSI_START","ANSI_END","RESET","import_node_os","isSupportsColor","env","argv","parseSyntax","str","start","styles","text","tempStr","styleStr","open","cursor","strStart","getCurStyles","c","obj","cur","parser","arr","s","i","renderWithStyles","obj","color","out","t","applyStyles","render","arr","acc","cur","style","str","options","opts","isSupportsColor","parsedValue","parser"]}