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