1
0
mirror of https://github.com/actions/setup-python synced 2024-11-30 21:22:28 +08:00
setup-python/node_modules/pascalcase/index.js

22 lines
586 B
JavaScript
Raw Normal View History

2019-06-27 09:12:00 +08:00
/*!
* 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;