1'use strict'; 2module.exports = function (str, sep) { 3 if (typeof str !== 'string') { 4 throw new TypeError('Expected a string'); 5 } 6 7 sep = typeof sep === 'undefined' ? '_' : sep; 8 9 return str 10 .replace(/([a-z\d])([A-Z])/g, '$1' + sep + '$2') 11 .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + sep + '$2') 12 .toLowerCase(); 13}; 14