UNPKG

@qinglian/case-tool

Version:

a tool used to validate name case & translate

79 lines (78 loc) 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.camelToPascal = exports.kebabToPascal = exports.snakeToPascal = exports.isPascalCase = exports.isKebabCase = exports.isCamelCase = exports.isSnakeCase = void 0; /** * validate name is snake case * @example a_b * @param name * @returns */ const isSnakeCase = (name) => { return /^(([a-z0-9])_?)+$/.test(name); }; exports.isSnakeCase = isSnakeCase; /** * validate name is camel case * @example userName * @param name * @returns */ const isCamelCase = (name) => { return /^([a-z]([A-Za-z0-9]{0,}))(([A-Z]([A-Za-z0-9]{0,})){0,})$/.test(name); }; exports.isCamelCase = isCamelCase; /** * validate name is kebab case * @example a-b * @param name * @returns */ const isKebabCase = (name) => { return /^(([a-z0-9])-?)+$/.test(name); }; exports.isKebabCase = isKebabCase; /** * validate name is pascal case * @example UserName * @param name * @returns */ const isPascalCase = (name) => { return /^([A-Z]([A-Za-z0-9]{0,}))+$/.test(name); }; exports.isPascalCase = isPascalCase; /** * convert snake case to pascal case * @param name * @returns */ const snakeToPascal = (name) => { return name .split("_") .filter(Boolean) .map((i) => `${i[0].toUpperCase()}${i.slice(1)}`) .join(""); }; exports.snakeToPascal = snakeToPascal; /** * convert kebab case to pascal case * @param name * @returns */ const kebabToPascal = (name) => { return name .split("-") .filter(Boolean) .map((i) => `${i[0].toUpperCase()}${i.slice(1)}`) .join(""); }; exports.kebabToPascal = kebabToPascal; /** * convert camel case to pascal case * @param name * @returns */ const camelToPascal = (name) => { return name ? `${name[0].toUpperCase()}${name.slice(1)}` : name; }; exports.camelToPascal = camelToPascal;