nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.
26 lines (25 loc) • 967 B
JavaScript
import { isArrayOfType } from '../guards/non-primitives.js';
import { isNumber, isString } from '../guards/primitives.js';
import { CSS_16_COLORS } from './constants.js';
export function _extractColorName(bgColor) {
return bgColor.slice(2).toLowerCase();
}
export function _isAnsiSequence(seq) {
return (isArrayOfType(seq, isString) &&
seq?.length === 2 &&
(seq[0].startsWith('\x1b[48') || seq[0].startsWith('\x1b[38')) &&
(seq[1].startsWith('\x1b[49') || seq[1].startsWith('\x1b[39')));
}
export function _isAnsi16ColorValue(value) {
return (isArrayOfType(value, isNumber) &&
value?.length === 2 &&
value[0] >= 30 &&
value[0] <= 107 &&
(value[1] === 39 || value[1] === 49));
}
export function _isCSS16Color(value) {
return value?.startsWith('css-') && value?.replace('css-', '') in CSS_16_COLORS;
}
export function _css16ToHex(value) {
return CSS_16_COLORS?.[value?.replace('css-', '')];
}