create-snippet
Version:
npx tool for generating code snippets
224 lines (223 loc) • 8.09 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModuleString = void 0;
class ModuleString {
toCamelCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
const stringInKebabCase = this.anyCaseToKebabCase(stringInAnyCase);
const array = stringInKebabCase.split('-');
const firstWord = array[0];
const otherWord = array.map((item, index) => {
if (index > 0) {
return `${item[0].toUpperCase()}${item.substring(1)}`;
}
});
return `${firstWord}${otherWord.join('')}`;
}
toUpperSnakeCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
const stringInKebabCase = this.anyCaseToKebabCase(stringInAnyCase);
const array = stringInKebabCase.split('-');
const string = array.map((item) => item.toUpperCase());
return string.join('_');
}
toLowerSnakeCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
const stringInKebabCase = this.anyCaseToKebabCase(stringInAnyCase);
const array = stringInKebabCase.split('-');
const string = array.map((item) => item.toLowerCase());
return string.join('_');
}
toUpperKebabCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
const stringInKebabCase = this.anyCaseToKebabCase(stringInAnyCase);
return stringInKebabCase.toUpperCase();
}
toLowerKebabCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
const stringInKebabCase = this.anyCaseToKebabCase(stringInAnyCase);
return stringInKebabCase.toLowerCase();
}
toPascalCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
const stringInKebabCase = this.anyCaseToKebabCase(stringInAnyCase);
const array = stringInKebabCase.split('-');
const firstWord = `${array[0][0].toUpperCase()}${array[0].substring(1)}`;
const otherWord = array.map((item, index) => {
if (index > 0) {
return `${item[0].toUpperCase()}${item.substring(1)}`;
}
});
return `${firstWord}${otherWord.join('')}`;
}
toLowerCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
return stringInAnyCase.toLowerCase();
}
toUpperCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return '';
return stringInAnyCase.toUpperCase();
}
isFirstLetterUpperCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
return (stringInAnyCase.charAt(0).toUpperCase() ===
stringInAnyCase.charAt(0));
}
isFirstLetterLowerCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
return (stringInAnyCase.charAt(0).toLowerCase() ===
stringInAnyCase.charAt(0));
}
isStringContainsDash(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
return stringInAnyCase.search(/-/g) > 0;
}
isStringContainsUnderlining(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
return stringInAnyCase.search(/_/g) > 0;
}
isStringUpperCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
return stringInAnyCase.toUpperCase() === stringInAnyCase;
}
isStringLowerCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
return stringInAnyCase.toLowerCase() === stringInAnyCase;
}
isLowerCase(stringInAnyCase) {
return stringInAnyCase.toLowerCase() === stringInAnyCase;
}
isUpperCase(stringInAnyCase) {
return stringInAnyCase.toUpperCase() === stringInAnyCase;
}
isCamelCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
if (this.isFirstLetterUpperCase(stringInAnyCase))
return false;
if (this.isStringContainsDash(stringInAnyCase))
return false;
if (this.isStringContainsUnderlining(stringInAnyCase))
return false;
if (this.isStringUpperCase(stringInAnyCase))
return false;
return true;
}
isPascalCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
if (this.isFirstLetterLowerCase(stringInAnyCase))
return false;
if (this.isStringContainsDash(stringInAnyCase))
return false;
if (this.isStringContainsUnderlining(stringInAnyCase))
return false;
if (this.isStringUpperCase(stringInAnyCase))
return false;
return true;
}
isUpperSnakeCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
if (this.isStringUpperCase(stringInAnyCase) &&
this.isStringContainsUnderlining(stringInAnyCase)) {
return true;
}
return false;
}
isLowerSnakeCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
if (this.isStringLowerCase(stringInAnyCase) &&
this.isStringContainsUnderlining(stringInAnyCase)) {
return true;
}
return false;
}
isUpperKebabCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
if (this.isStringUpperCase(stringInAnyCase) &&
this.isStringContainsDash(stringInAnyCase)) {
return true;
}
return false;
}
isLowerKebabCase(stringInAnyCase) {
if (stringInAnyCase.length === 0)
return false;
if (this.isStringLowerCase(stringInAnyCase) &&
this.isStringContainsDash(stringInAnyCase)) {
return true;
}
return false;
}
anyCaseToKebabCase(stringInAnyCase) {
if (stringInAnyCase.length === 0) {
return stringInAnyCase;
}
if (this.isCamelCase(stringInAnyCase)) {
return stringInAnyCase
.split(/(?=[A-Z])/)
.map((item) => item.toLowerCase())
.toString()
.replaceAll(',', '-');
}
if (this.isLowerKebabCase(stringInAnyCase)) {
return stringInAnyCase;
}
if (this.isLowerSnakeCase(stringInAnyCase)) {
return stringInAnyCase.replaceAll('_', '-');
}
if (this.isPascalCase(stringInAnyCase)) {
return (stringInAnyCase.charAt(0).toLowerCase() +
stringInAnyCase
.slice(1)
.split(/(?=[A-Z])/)
.map((item) => item.toLowerCase())
.toString()
.replaceAll(',', '-'));
}
if (this.isUpperKebabCase(stringInAnyCase)) {
return stringInAnyCase.toLowerCase();
}
if (this.isUpperSnakeCase(stringInAnyCase)) {
return stringInAnyCase.replaceAll('_', '-').toLowerCase();
}
return stringInAnyCase;
}
defineCase(stringInAnyCase) {
if (this.isCamelCase(stringInAnyCase))
return 'camelCase';
if (this.isPascalCase(stringInAnyCase))
return 'pascalCase';
if (this.isUpperSnakeCase(stringInAnyCase))
return 'upperSnakeCase';
if (this.isLowerSnakeCase(stringInAnyCase))
return 'lowerSnakeCase';
if (this.isUpperKebabCase(stringInAnyCase))
return 'upperKebabCase';
if (this.isLowerKebabCase(stringInAnyCase))
return 'lowerKebabCase';
if (this.isUpperCase(stringInAnyCase))
return 'upperCase';
if (this.isLowerCase(stringInAnyCase))
return 'lowerCase';
return 'lowerCase';
}
}
exports.ModuleString = ModuleString;