convconv
Version:
Naming Conventions Converter
49 lines (48 loc) • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pascal = void 0;
const utils_1 = require("../utils");
var Pascal;
(function (Pascal) {
function isPascal(name) {
if (name.length === 0)
return true;
if ((0, utils_1.isLowerAlpha)(name[0]) || (0, utils_1.isNum)(name[0]))
return false;
return (0, utils_1.isAlphaNum)(name);
}
Pascal.isPascal = isPascal;
function toKebab(name) {
return name
.split("")
.reduce((arr, char, index) => {
if ((0, utils_1.isUpperAlpha)(char)) {
if (index !== 0) {
arr.push("-");
}
arr.push(char.toLowerCase());
}
else {
if ((0, utils_1.isNum)(char) && !(0, utils_1.isNum)(name[index - 1])) {
arr.push("-");
}
arr.push(char);
}
return arr;
}, [])
.join("");
}
Pascal.toKebab = toKebab;
function fromKebab(name) {
return name
.split("-")
.map((piece) => {
if (piece.length === 0) {
return piece;
}
return `${piece[0].toUpperCase()}${piece.slice(1)}`;
})
.join("");
}
Pascal.fromKebab = fromKebab;
})(Pascal || (exports.Pascal = Pascal = {}));