19 lines · 598 B · TypeScript
RawDownload
export namespace Color {  export function isValidHex(hex?: string): hex is string {    if (!hex) return false    return /^#[0-9a-fA-F]{6}$/.test(hex)  }   export function hexToRgb(hex: string): { r: number; g: number; b: number } {    const r = parseInt(hex.slice(1, 3), 16)    const g = parseInt(hex.slice(3, 5), 16)    const b = parseInt(hex.slice(5, 7), 16)    return { r, g, b }  }   export function hexToAnsiBold(hex?: string): string | undefined {    if (!isValidHex(hex)) return undefined    const { r, g, b } = hexToRgb(hex)    return `\x1b[38;2;${r};${g};${b}m\x1b[1m`  }}