'use strict'; module.exports = function () { var str = [].map.call(arguments, function (str) { return str.trim(); }).filter(function (str) { return str.length; }).join('-'); if (!str.length) { return ''; } if (str.length === 1 || !(/[_.\- ]+/).test(str) ) { if (str[0] === str[0].toLowerCase() && str.slice(1) !== str.slice(1).toLowerCase()) { return str; } return str.toLowerCase(); } return str .replace(/^[_.\- ]+/, '') .toLowerCase() .replace(/[_.\- ]+(\w|$)/g, function (m, p1) { return p1.toUpperCase(); }); };