uncase
Version:
Wrapper of change-case to create case converter, validator and etc.
97 lines (94 loc) • 2.43 kB
JavaScript
// src/core.ts
import {
camelCase,
capitalCase,
constantCase,
dotCase,
kebabCase,
noCase,
pascalCase,
pascalSnakeCase,
pathCase,
sentenceCase,
snakeCase,
trainCase
} from "change-case";
var convertersMap = {
camelCase,
capitalCase,
"Capital Case": capitalCase,
CONSTANT_CASE: constantCase,
constantCase,
"dot.case": dotCase,
dotCase,
"kebab-case": kebabCase,
kebabCase,
noCase,
"no case": noCase,
Pascal_Snake_Case: pascalSnakeCase,
pascalCase,
PascalCase: pascalCase,
pascalSnakeCase,
"path/case": pathCase,
pathCase,
sentenceCase,
"Sentence case": sentenceCase,
snake_case: snakeCase,
snakeCase,
"Train-Case": trainCase,
trainCase
};
function getCaseConverter(caseType, options = {}) {
const convert = convertersMap[caseType];
return (input) => {
const output = convert(input, options);
const changed = output !== input;
return {
changed,
input,
output
};
};
}
// src/is.ts
function createCaseValidator(caseType) {
const convert = getCaseConverter(caseType);
return (input) => {
if (!isNonEmptyString(input)) return false;
return !convert(input).changed;
};
}
function isNonEmptyString(value) {
return isString(value) && value.length > 0;
}
function isString(value) {
return typeof value === "string";
}
var isCamelCase = (input) => createCaseValidator("camelCase")(input);
var isCapitalCase = (input) => createCaseValidator("capitalCase")(input);
var isConstantCase = (input) => createCaseValidator("constantCase")(input);
var isDotCase = (input) => createCaseValidator("dotCase")(input);
var isKebabCase = (input) => createCaseValidator("kebabCase")(input);
var isNoCase = (input) => createCaseValidator("noCase")(input);
var isPascalCase = (input) => createCaseValidator("pascalCase")(input);
var isPascalSnakeCase = (input) => createCaseValidator("pascalSnakeCase")(input);
var isPathCase = (input) => createCaseValidator("pathCase")(input);
var isSentenceCase = (input) => createCaseValidator("sentenceCase")(input);
var isSnakeCase = (input) => createCaseValidator("snakeCase")(input);
var isTrainCase = (input) => createCaseValidator("trainCase")(input);
export {
convertersMap,
getCaseConverter,
isCamelCase,
isCapitalCase,
isConstantCase,
isDotCase,
isKebabCase,
isNoCase,
isPascalCase,
isPascalSnakeCase,
isPathCase,
isSentenceCase,
isSnakeCase,
isTrainCase
};