accelerator-core
Version:
[](https://travis-ci.org/furkleindustries/accelerator-core)
21 lines (17 loc) • 454 B
text/typescript
export const pascalCaseToKebabCase = (pascal: string): string => {
/* The capturing group preserves the capital letters. */
let kebab = pascal
.split(new RegExp(/([A-Z])/))
.reduce((str, segment) => {
if (!segment) {
return str;
}
return str + new RegExp(/^[A-Z]$/).test(str) ?
`-${str.toLowerCase}` :
str;
});
if (kebab.startsWith('-')) {
kebab = kebab.slice(1);
}
return kebab;
};