setup-python/node_modules/pascalcase/index.js
Danny McCormick 39c08a0eaa Initial pass
2019-06-26 21:12:00 -04:00

22 lines
586 B
JavaScript

/*!
* 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;