UNPKG

@crayon.js/color-support

Version:
1 lines 1.33 kB
import{execSync}from"child_process";import os from"os";const getWindowsVersion=()=>{if("win32"!=process.platform)return[];{const[o,,r]=os.release().split(".");return[Number(o),Number(r)]}};let trueColor=!1;let highColor=!1;let threeBitColor=!1;let fourBitColor=!1;const supportedColors=()=>({trueColor:trueColor,highColor:highColor,threeBitColor:threeBitColor,fourBitColor:fourBitColor});const CIs=["TRAVIS","CIRCLECI","GITHUB_ACTIONS","GITLAB_CI","BUILDKITE","DRONE","APPVEYOR"];const getColorSupport=()=>{if(process.env.NO_COLOR)return threeBitColor=fourBitColor=highColor=trueColor=!1,supportedColors();if("truecolor"===process.env.COLORTERM)return threeBitColor=fourBitColor=highColor=trueColor=!0,supportedColors();if(/-?256(color)?/gi.test(process.env.TERM||""))return fourBitColor=highColor=!0,supportedColors();if(process.env.CI&&CIs.some(o=>!!process.env[o]))return threeBitColor=fourBitColor=!0,supportedColors();if(process.env.COLORTERM)return threeBitColor=fourBitColor=!0,supportedColors();const o=getWindowsVersion();if(o.length)return threeBitColor=fourBitColor=highColor=trueColor=14931<o[1],supportedColors();const r=Number(execSync("tput colors"))||0;return threeBitColor=4<=r,fourBitColor=8<=r,highColor=256<=r,trueColor=16777216<=r,supportedColors()};export{getWindowsVersion,supportedColors,getColorSupport};