nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.
33 lines (32 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports._extractColorName = _extractColorName;
exports._isAnsiSequence = _isAnsiSequence;
exports._isAnsi16ColorValue = _isAnsi16ColorValue;
exports._isCSS16Color = _isCSS16Color;
exports._css16ToHex = _css16ToHex;
const non_primitives_1 = require("../guards/non-primitives");
const primitives_1 = require("../guards/primitives");
const constants_1 = require("./constants");
function _extractColorName(bgColor) {
return bgColor.slice(2).toLowerCase();
}
function _isAnsiSequence(seq) {
return ((0, non_primitives_1.isArrayOfType)(seq, primitives_1.isString) &&
seq?.length === 2 &&
(seq[0].startsWith('\x1b[48') || seq[0].startsWith('\x1b[38')) &&
(seq[1].startsWith('\x1b[49') || seq[1].startsWith('\x1b[39')));
}
function _isAnsi16ColorValue(value) {
return ((0, non_primitives_1.isArrayOfType)(value, primitives_1.isNumber) &&
value?.length === 2 &&
value[0] >= 30 &&
value[0] <= 107 &&
(value[1] === 39 || value[1] === 49));
}
function _isCSS16Color(value) {
return value?.startsWith('css-') && value?.replace('css-', '') in constants_1.CSS_16_COLORS;
}
function _css16ToHex(value) {
return constants_1.CSS_16_COLORS?.[value?.replace('css-', '')];
}