22 lines
		
	
	
		
			586 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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;
 |