line_push/node_modules/scule/dist/index.js
2022-07-18 02:50:52 +00:00

70 lines
1.8 KiB
JavaScript

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function isUppercase(char = "") {
return char.toUpperCase() === char;
}
const STR_SPLITTERS = ["-", "_", "/", "."];
function splitByCase(str, splitters = STR_SPLITTERS) {
const parts = [];
let buff = "";
let previusUpper = isUppercase(str[0]);
let previousSplitter = splitters.includes(str[0]);
for (const char of str.split("")) {
const isSplitter = splitters.includes(char);
if (isSplitter) {
parts.push(buff);
buff = "";
previusUpper = false;
previousSplitter = true;
} else if (!previousSplitter && !previusUpper && isUppercase(char)) {
parts.push(buff);
buff = char;
previusUpper = true;
previousSplitter = false;
} else {
buff += char;
previusUpper = isUppercase(char);
previousSplitter = isSplitter;
}
}
if (buff) {
parts.push(buff);
}
return parts;
}
function upperFirst(str) {
if (!str) {
return "";
}
return str[0].toUpperCase() + str.substr(1);
}
function lowerFirst(str) {
if (!str) {
return "";
}
return str[0].toLocaleLowerCase() + str.substr(1);
}
function pascalCase(str = "") {
return (Array.isArray(str) ? str : splitByCase(str)).map((p) => upperFirst(p)).join("");
}
function camelCase(str = "") {
return lowerFirst(pascalCase(str));
}
function kebabCase(str = "", joiner = "-") {
return (Array.isArray(str) ? str : splitByCase(str)).map((p = "") => p.toLocaleLowerCase()).join(joiner);
}
function snakeCase(str = "") {
return kebabCase(str, "_");
}
exports.camelCase = camelCase;
exports.isUppercase = isUppercase;
exports.kebabCase = kebabCase;
exports.lowerFirst = lowerFirst;
exports.pascalCase = pascalCase;
exports.snakeCase = snakeCase;
exports.splitByCase = splitByCase;
exports.upperFirst = upperFirst;