You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
586 B
21 lines
586 B
/*! |
|
* pascalcase <https://github.com/jonschlinkert/pascalcase> |
|
* |
|
* Copyright (c) 2015, Jon Schlinkert. |
|
* Licensed under the MIT License. |
|
*/ |
|
|
|
function pascalcase(str) { |
|
if (typeof str !== 'string') { |
|
throw new TypeError('expected a string.'); |
|
} |
|
str = str.replace(/([A-Z])/g, ' $1'); |
|
if (str.length === 1) { return str.toUpperCase(); } |
|
str = str.replace(/^[\W_]+|[\W_]+$/g, '').toLowerCase(); |
|
str = str.charAt(0).toUpperCase() + str.slice(1); |
|
return str.replace(/[\W_]+(\w|$)/g, function (_, ch) { |
|
return ch.toUpperCase(); |
|
}); |
|
} |
|
|
|
module.exports = pascalcase;
|
|
|