convconv
Version:
Naming Conventions Converter
46 lines (45 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Camel = void 0;
const utils_1 = require("../utils");
var Camel;
(function (Camel) {
function isCamel(name) {
if (name.length === 0)
return true;
if ((0, utils_1.isUpperAlpha)(name[0]) || (0, utils_1.isNum)(name[0]))
return false;
return (0, utils_1.isAlphaNum)(name);
}
Camel.isCamel = isCamel;
function toKebab(name) {
return name
.split("")
.reduce((arr, char, index) => {
if ((0, utils_1.isUpperAlpha)(char)) {
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("");
}
Camel.toKebab = toKebab;
function fromKebab(name) {
return name
.split("-")
.map((piece, index) => {
if (piece.length === 0 || index === 0) {
return piece;
}
return `${piece[0].toUpperCase()}${piece.slice(1)}`;
})
.join("");
}
Camel.fromKebab = fromKebab;
})(Camel || (exports.Camel = Camel = {}));