@mirawision/colorize
Version:
A comprehensive color manipulation library for TypeScript, providing functionalities for color conversion, validation, gradient generation, and various color adjustments.
41 lines (40 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getColorFormat = void 0;
const is_valid_color_1 = require("./is-valid-color");
const types_1 = require("./types");
/**
* Identifies the format of a given color string from among several supported color models.
* Utilizes a series of specific validators for different color formats, including HEX, HEXA,
* RGB, RGBA, HSL, HSLA, HSV, and CMYK. This approach allows for accurately determining the
* color model of the input string, facilitating format-specific processing or conversions.
*
* @param {string} color - The color string to be identified.
*
* @returns {ColorFormat | null} - The identified color format as a `ColorFormat` enum value,
* or `null` if the format does not match any of the supported types.
*
* Example usage:
* getColorFormat('#FF5733'); // returns 'HEX'
* getColorFormat('rgb(255, 99, 71)'); // returns 'RGB'
* getColorFormat('invalidColor'); // returns null, as the format is not recognized
*/
const getColorFormat = (color) => {
const validators = {
[types_1.ColorFormat.HEX]: is_valid_color_1.isValidHEXColor,
[types_1.ColorFormat.HEXA]: is_valid_color_1.isValidHEXAColor,
[types_1.ColorFormat.RGB]: is_valid_color_1.isValidRGBColor,
[types_1.ColorFormat.RGBA]: is_valid_color_1.isValidRGBAColor,
[types_1.ColorFormat.HSL]: is_valid_color_1.isValidHSLColor,
[types_1.ColorFormat.HSLA]: is_valid_color_1.isValidHSLAColor,
[types_1.ColorFormat.HSV]: is_valid_color_1.isValidHSVColor,
[types_1.ColorFormat.CMYK]: is_valid_color_1.isValidCMYKColor,
};
for (const [type, validator] of Object.entries(validators)) {
if (validator(color)) {
return type;
}
}
return null;
};
exports.getColorFormat = getColorFormat;