diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-04-20 03:09:25 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-04-24 16:14:29 +0200 |
commit | 82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 (patch) | |
tree | 965f6eb89b84d65a62b49008fd972c004832ccd1 /node_modules/camelcase/index.js | |
parent | e6e0cbc387c2a77b48e4065c229daa65bf1aa0fa (diff) |
Reorganize module loading.
We now use webpack instead of SystemJS, effectively bundling modules
into one file (plus commons chunks) for every entry point. This results
in a much smaller extension size (almost half). Furthermore we use
yarn/npm even for extension run-time dependencies. This relieves us
from manually vendoring and building dependencies. It's also easier to
understand for new developers familiar with node.
Diffstat (limited to 'node_modules/camelcase/index.js')
-rw-r--r-- | node_modules/camelcase/index.js | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/node_modules/camelcase/index.js b/node_modules/camelcase/index.js index b46e10094..5670f73f2 100644 --- a/node_modules/camelcase/index.js +++ b/node_modules/camelcase/index.js @@ -1,4 +1,23 @@ 'use strict'; + +function preserveCamelCase(str) { + var isLastCharLower = false; + + for (var i = 0; i < str.length; i++) { + var c = str.charAt(i); + + if (isLastCharLower && (/[a-zA-Z]/).test(c) && c.toUpperCase() === c) { + str = str.substr(0, i) + '-' + str.substr(i); + isLastCharLower = false; + i++; + } else { + isLastCharLower = (c.toLowerCase() === c); + } + } + + return str; +} + module.exports = function () { var str = [].map.call(arguments, function (str) { return str.trim(); @@ -10,14 +29,24 @@ module.exports = function () { return ''; } - if (str.length === 1 || !(/[_.\- ]+/).test(str) ) { - if (str[0] === str[0].toLowerCase() && str.slice(1) !== str.slice(1).toLowerCase()) { - return str; + if (str.length === 1) { + return str.toLowerCase(); + } + + if (!(/[_.\- ]+/).test(str)) { + if (str === str.toUpperCase()) { + return str.toLowerCase(); } - return str.toLowerCase(); + if (str[0] !== str[0].toLowerCase()) { + return str[0].toLowerCase() + str.slice(1); + } + + return str; } + str = preserveCamelCase(str); + return str .replace(/^[_.\- ]+/, '') .toLowerCase() |