| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | const assert = require('assert')const invalidChars = /[^a-zA-Z0-9:]+/g/** * Convert text to kebab-case * @param {string} str Text to be converted * @return {string} */function kebabCase (str) {  return str    .replace(/([a-z])([A-Z])/g, match => match[0] + '-' + match[1])    .replace(invalidChars, '-')    .toLowerCase()}/** * Convert text to snake_case * @param {string} str Text to be converted * @return {string} */function snakeCase (str) {  return str    .replace(/([a-z])([A-Z])/g, match => match[0] + '_' + match[1])    .replace(invalidChars, '_')    .toLowerCase()}/** * Convert text to camelCase * @param {string} str Text to be converted * @return {string} Converted string */function camelCase (str) {  return str    .replace(/_/g, (_, index) => index === 0 ? _ : '-')    .replace(/(?:^\w|[A-Z]|\b\w)/g, (letter, index) =>      index === 0 ? letter.toLowerCase() : letter.toUpperCase()    )    .replace(invalidChars, '')}/** * Convert text to PascalCase * @param {string} str Text to be converted * @return {string} Converted string */function pascalCase (str) {  return str    .replace(/_/g, (_, index) => index === 0 ? _ : '-')    .replace(/(?:^\w|[A-Z]|\b\w)/g, (letter, index) => letter.toUpperCase())    .replace(invalidChars, '')}const convertersMap = {  'kebab-case': kebabCase,  'snake_case': snakeCase,  'camelCase': camelCase,  'PascalCase': pascalCase}module.exports = {  allowedCaseOptions: [    'camelCase',    'kebab-case',    'PascalCase'  ],  /**   * Return case converter   * @param {string} name type of converter to return ('camelCase', 'kebab-case', 'PascalCase')   * @return {kebabCase|camelCase|pascalCase}   */  getConverter (name) {    assert(typeof name === 'string')    return convertersMap[name] || pascalCase  }}
 |