chain-able
Version:
interfaces that describe their intentions.
29 lines (28 loc) • 2.86 kB
JavaScript
/* prettier-ignore */
/**
* @desc camelCase
* @since 0.2.0
*
* @param {string} str string to turn into camelCase
* @return {string} camelCased string
*
* @tutorial https://github.com/substack/camelize/blob/master/test/camel.js
* @tutorial https://github.com/andrewplummer/Sugar/blob/9c018a257a38714b81f7df033b74d236dbf1e861/lib/string.js
* @tutorial http://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case
* @tutorial https://github.com/sindresorhus/camelcase
* @see https://stackoverflow.com/questions/1533131/what-useful-bitwise-operator-code-tricks-should-a-developer-know-about
* @TODO s.charAt(0).toLowerCase() + string.slice(1)
*
* @example
*
* camelCase('snake_case')
* //=> 'snakeCase'
*
*/
module.exports = function (str) { return str
// spaces with underscore
.replace(/\s+/g, '_')
// < underscores & dashes until whitespace or end
// > .toUpperCase x & '_'
.replace(/[_.-](\w|$)/g, function (m, x) { return x.toUpperCase(); }); }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZWwtY2FzZS5qcyIsInNvdXJjZXMiOlsiY2FtZWwtY2FzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBwcmV0dGllci1pZ25vcmUgKi9cbi8qKlxuICogQGRlc2MgY2FtZWxDYXNlXG4gKiBAc2luY2UgMC4yLjBcbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHN0ciBzdHJpbmcgdG8gdHVybiBpbnRvIGNhbWVsQ2FzZVxuICogQHJldHVybiB7c3RyaW5nfSBjYW1lbENhc2VkIHN0cmluZ1xuICpcbiAqIEB0dXRvcmlhbCBodHRwczovL2dpdGh1Yi5jb20vc3Vic3RhY2svY2FtZWxpemUvYmxvYi9tYXN0ZXIvdGVzdC9jYW1lbC5qc1xuICogQHR1dG9yaWFsIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyZXdwbHVtbWVyL1N1Z2FyL2Jsb2IvOWMwMThhMjU3YTM4NzE0YjgxZjdkZjAzM2I3NGQyMzZkYmYxZTg2MS9saWIvc3RyaW5nLmpzXG4gKiBAdHV0b3JpYWwgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yOTcwNTI1L2NvbnZlcnRpbmctYW55LXN0cmluZy1pbnRvLWNhbWVsLWNhc2VcbiAqIEB0dXRvcmlhbCBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL2NhbWVsY2FzZVxuICogQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNTMzMTMxL3doYXQtdXNlZnVsLWJpdHdpc2Utb3BlcmF0b3ItY29kZS10cmlja3Mtc2hvdWxkLWEtZGV2ZWxvcGVyLWtub3ctYWJvdXRcbiAqIEBUT0RPIHMuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSlcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICBjYW1lbENhc2UoJ3NuYWtlX2Nhc2UnKVxuICogIC8vPT4gJ3NuYWtlQ2FzZSdcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gc3RyID0+XG4gIHN0clxuICAgIC8vIHNwYWNlcyB3aXRoIHVuZGVyc2NvcmVcbiAgICAucmVwbGFjZSgvXFxzKy9nLCAnXycpXG4gICAgLy8gPCB1bmRlcnNjb3JlcyAmIGRhc2hlcyB1bnRpbCB3aGl0ZXNwYWNlIG9yIGVuZFxuICAgIC8vID4gLnRvVXBwZXJDYXNlIHggJiAnXydcbiAgICAucmVwbGFjZSgvW18uLV0oXFx3fCQpL2csIChtLCB4KSA9PiB4LnRvVXBwZXJDYXNlKCkpXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQUEsR0FBRyxDQUFBLENBQUMsQUFDbkIsU0FBQSxHQUFHOztLQUVBLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDOzs7S0FHcEIsT0FBTyxDQUFDLGNBQWMsRUFBRSxTQUFBLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFHLFNBQUEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFBLENBQUMsR0FBQTsifQ==