UNPKG

@schemifyjs/schematics

Version:

Reusable schematics for scaffolding SchemifyJS projects.

22 lines (21 loc) 776 B
export function generateNameVariants(raw) { // Normalize the input string to create various naming conventions const normalized = raw .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') .toLowerCase() .replace(/[^a-z0-9]+/g, '-') .replace(/^-+|-+$/g, ''); // Generate different naming conventions const camel = normalized.replace(/-([a-z0-9])/g, (_, c) => c.toUpperCase()); const pascal = camel.charAt(0).toUpperCase() + camel.slice(1); const snake = normalized.replace(/-/g, '_'); const screamingSnake = snake.toUpperCase(); return { projectName: normalized, projectNameCamel: camel, ProjectName: pascal, project_name: snake, PROJECT_NAME: screamingSnake }; }