import { isHexColor, isRgbColor } from '.'; interface StringValidationResult { valid: boolean; raw: string; parsed: string; error?: string; } const validateMemeTitle = (title: string): StringValidationResult => { const parsedTitle = title.trim(); if (parsedTitle.length === 0) { return { valid: false, raw: title, parsed: parsedTitle, error: 'Title cannot be empty', }; } return { valid: true, raw: title, parsed: parsedTitle, }; }; const validateTagName = (name: string): StringValidationResult => { const parsedName = name.trim(); if (parsedName.length === 0) { return { valid: false, raw: name, parsed: parsedName, error: 'Name cannot be empty', }; } return { valid: true, raw: name, parsed: parsedName, }; }; const validateColor = (color: string): StringValidationResult => { const parsedColor = color.trim().toLowerCase(); if (!isHexColor(parsedColor) && !isRgbColor(parsedColor)) { return { valid: false, raw: color, parsed: parsedColor, error: 'Color must be a valid hex or rgb value', }; } return { valid: true, raw: color, parsed: parsedColor, }; }; export { type StringValidationResult, validateMemeTitle, validateTagName, validateColor, };