UNPKG

@gobvoz/cli-fsd

Version:

Utility to create slices in Feature-Sliced Design methodology. Expect, that you have already installed `react`, `typescript`, `@reduxjs/toolkit`, `@reduxjs/toolkit-query`, `i18n` and use `module.scss` structure.

34 lines (26 loc) 864 B
const pattern = new RegExp( ['[A-Z][a-z0-9]+', '[A-Z]+(?=[A-Z][a-z0-9])', '[A-Z]+', '[a-z]+', '[0-9]+'].join('|'), 'g', ); const parse = (string = '') => (string.match(pattern) || []).map(word => word.toLowerCase()); const upperFirst = string => string.slice(0, 1).toUpperCase() + string.slice(1); const lowerFirst = string => string && string.slice(0, 1).toLowerCase() + string.slice(1); const camelCase = (string = '') => lowerFirst( parse(string) .map(word => upperFirst(word)) .join(''), ); const pascalCase = (string = '') => parse(string) .map(word => upperFirst(word)) .join(''); const kebabCase = (string = '') => parse(string) .map(word => word) .join('-'); const snakeCase = (string = '') => parse(string) .map(word => word) .join('_'); export { camelCase, pascalCase, kebabCase, snakeCase };