UNPKG

@meyje/meyje-setup

Version:

🪄 MEYJE Setup: produtividade e organização desde o primeiro comando. Automatiza a criação de projetos Next.js 14 com as melhores práticas do mercado.

53 lines (48 loc) • 1.43 kB
/** * Converte uma string para um slug válido para nomes de projeto * @param {string} text - Texto a ser convertido * @returns {string} - Slug válido */ export function slugify(text) { return text .toString() .toLowerCase() .trim() // Remove acentos .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') // Remove caracteres especiais, mantém apenas letras, números e hífens .replace(/[^a-z0-9\s-]/g, '') // Substitui espaços por hífens .replace(/\s+/g, '-') // Remove hífens duplicados .replace(/-+/g, '-') // Remove hífens no início e fim .replace(/^-+|-+$/g, ''); } /** * Valida se um nome de projeto é válido * @param {string} projectName - Nome do projeto * @returns {boolean} - Se é válido */ export function isValidProjectName(projectName) { if (!projectName || projectName.trim().length === 0) { return false; } // Verifica se contém apenas caracteres válidos const validPattern = /^[a-zA-Z0-9\s-_]+$/; return validPattern.test(projectName); } /** * Normaliza o nome do projeto removendo espaços e caracteres especiais. * @param {string} projectName - O nome do projeto. * @returns {string} O nome do projeto normalizado. */ function normalizeProjectName(projectName) { return projectName .trim() .toLowerCase() .replace(/\s+/g, '-') .replace(/[^a-z0-9-]/g, ''); } export { normalizeProjectName };