aboutsummaryrefslogtreecommitdiff
path: root/node_modules/camelcase/index.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-04-20 03:09:25 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-04-24 16:14:29 +0200
commit82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 (patch)
tree965f6eb89b84d65a62b49008fd972c004832ccd1 /node_modules/camelcase/index.js
parente6e0cbc387c2a77b48e4065c229daa65bf1aa0fa (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.js37
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()