UNPKG

uncase

Version:

Wrapper of change-case to create case converter, validator and etc.

97 lines (94 loc) 2.43 kB
// 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 };