node/tools/eslint/node_modules/decamelize/index.js
Michaël Zasso 2d441493a4 tools: update eslint to v1.10.3
PR-URL: https://github.com/nodejs/io.js/pull/2286
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-13 23:15:39 +01:00

17 lines
446 B
JavaScript

'use strict';
var escapeStringRegexp = require('escape-string-regexp');
module.exports = function (str, sep) {
if (typeof str !== 'string') {
throw new TypeError('Expected a string');
}
sep = typeof sep === 'undefined' ? '_' : sep;
var reSep = escapeStringRegexp(sep);
return str.replace(/([a-z\d])([A-Z])/g, '$1' + sep + '$2')
.replace(new RegExp('(' + reSep + '[A-Z])([A-Z])', 'g'), '$1' + reSep + '$2')
.toLowerCase();
};