detect-terminal
Version:
Detect the terminal program currently being used, with support for iTerm, Terminal.app, Hyper, iTerm2, ConEmu, Cmde,r Alacritty, Xterm, Terminator, Termux, Kitty, and others. Detection is based on environment variables and process-level indicators to iden
1 lines • 2.05 kB
Source Map (JSON)
{"version":3,"sources":["../../src/color.ts"],"sourcesContent":["import type { ColorLevel } from './types';\n\nconst TRUE_COLOR_PATTERN = /^(truecolor|24bits?)$/;\n\nexport const has256Color = (value: string | undefined): boolean => {\n return Boolean(value?.match(/256/));\n};\n\nexport const supportsTrueColor = (value: string | undefined): boolean => {\n return Boolean(value?.match(TRUE_COLOR_PATTERN));\n};\n\nexport const getColorSupport = (env: NodeJS.ProcessEnv) => {\n return {\n supports256Color: has256Color(env.TERM) || has256Color(env.COLORTERM),\n supportsTrueColor: supportsTrueColor(env.COLORTERM)\n };\n};\n\nconst NO_BASIC_COLOR_TERMINALS = new Set([\n 'dumb',\n 'linux_console',\n 'none',\n 'unknown',\n 'vt100'\n]);\n\nexport const getColorLevel = (\n env: NodeJS.ProcessEnv,\n terminal?: string | null,\n colorSupport = getColorSupport(env)\n): ColorLevel => {\n const { supports256Color, supportsTrueColor } = colorSupport;\n\n if (supportsTrueColor) {\n return 3;\n }\n\n if (supports256Color) {\n return 2;\n }\n\n if (terminal && !NO_BASIC_COLOR_TERMINALS.has(terminal)) {\n return 1;\n }\n\n if (env.TERM_PROGRAM || env.COLORTERM || env.TERMUX_VERSION) {\n return 1;\n }\n\n return 0;\n};\n"],"mappings":";;;;AAEA,IAAM,qBAAqB;AAEpB,IAAM,cAAc,wBAAC,UAAuC;AACjE,SAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACpC,GAF2B;AAIpB,IAAM,oBAAoB,wBAAC,UAAuC;AACvE,SAAO,QAAQ,OAAO,MAAM,kBAAkB,CAAC;AACjD,GAFiC;AAI1B,IAAM,kBAAkB,wBAAC,QAA2B;AACzD,SAAO;AAAA,IACL,kBAAkB,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,SAAS;AAAA,IACpE,mBAAmB,kBAAkB,IAAI,SAAS;AAAA,EACpD;AACF,GAL+B;AAO/B,IAAM,2BAA2B,oBAAI,IAAI;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,gBAAgB,wBAC3B,KACA,UACA,eAAe,gBAAgB,GAAG,MACnB;AACf,QAAM,EAAE,kBAAkB,mBAAAA,mBAAkB,IAAI;AAEhD,MAAIA,oBAAmB;AACrB,WAAO;AAAA,EACT;AAEA,MAAI,kBAAkB;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,YAAY,CAAC,yBAAyB,IAAI,QAAQ,GAAG;AACvD,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,gBAAgB,IAAI,aAAa,IAAI,gBAAgB;AAC3D,WAAO;AAAA,EACT;AAEA,SAAO;AACT,GAxB6B;","names":["supportsTrueColor"]}