| 12345678910111213141516171819 |
- 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`
- }
- }
|