UNPKG

@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
"use strict"; 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;