UNPKG

foop

Version:

interfaces that describe their intentions.

33 lines (32 loc) 3 kB
/* prettier-ignore */ /** * @desc camelCase * @since 0.2.0 * @symb 🐫 * * @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) * * @types deps * @tests deps/camelCase * * @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZWxDYXNlLmpzIiwic291cmNlcyI6WyJjYW1lbENhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogcHJldHRpZXItaWdub3JlICovXG4vKipcbiAqIEBkZXNjIGNhbWVsQ2FzZVxuICogQHNpbmNlIDAuMi4wXG4gKiBAc3ltYiDwn5CrXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSBzdHIgc3RyaW5nIHRvIHR1cm4gaW50byBjYW1lbENhc2VcbiAqIEByZXR1cm4ge3N0cmluZ30gY2FtZWxDYXNlZCBzdHJpbmdcbiAqXG4gKiBAdHV0b3JpYWwgaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL2NhbWVsaXplL2Jsb2IvbWFzdGVyL3Rlc3QvY2FtZWwuanNcbiAqIEB0dXRvcmlhbCBodHRwczovL2dpdGh1Yi5jb20vYW5kcmV3cGx1bW1lci9TdWdhci9ibG9iLzljMDE4YTI1N2EzODcxNGI4MWY3ZGYwMzNiNzRkMjM2ZGJmMWU4NjEvbGliL3N0cmluZy5qc1xuICogQHR1dG9yaWFsIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjk3MDUyNS9jb252ZXJ0aW5nLWFueS1zdHJpbmctaW50by1jYW1lbC1jYXNlXG4gKiBAdHV0b3JpYWwgaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9jYW1lbGNhc2VcbiAqIEBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTUzMzEzMS93aGF0LXVzZWZ1bC1iaXR3aXNlLW9wZXJhdG9yLWNvZGUtdHJpY2tzLXNob3VsZC1hLWRldmVsb3Blci1rbm93LWFib3V0XG4gKiBAVE9ETyBzLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgc3RyaW5nLnNsaWNlKDEpXG4gKlxuICogQHR5cGVzIGRlcHNcbiAqIEB0ZXN0cyBkZXBzL2NhbWVsQ2FzZVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIGNhbWVsQ2FzZSgnc25ha2VfY2FzZScpXG4gKiAgLy89PiAnc25ha2VDYXNlJ1xuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBzdHIgPT5cbiAgc3RyXG4gICAgLy8gc3BhY2VzIHdpdGggdW5kZXJzY29yZVxuICAgIC5yZXBsYWNlKC9cXHMrL2csICdfJylcbiAgICAvLyA8IHVuZGVyc2NvcmVzICYgZGFzaGVzIHVudGlsIHdoaXRlc3BhY2Ugb3IgZW5kXG4gICAgLy8gPiAudG9VcHBlckNhc2UgeCAmICdfJ1xuICAgIC5yZXBsYWNlKC9bXy4tXShcXHd8JCkvZywgKG0sIHgpID0+IHgudG9VcHBlckNhc2UoKSlcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQUEsR0FBRyxDQUFBLENBQUMsQUFDbkIsU0FBQSxHQUFHOztLQUVBLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDOzs7S0FHcEIsT0FBTyxDQUFDLGNBQWMsRUFBRSxTQUFBLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFHLFNBQUEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFBLENBQUMsR0FBQTsifQ==