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