Blame view

node_modules/css-loader/lib/compile-exports.js 1.3 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  var camelCase = require("lodash.camelcase");
  
  function dashesCamelCase(str) {
    return str.replace(/-+(\w)/g, function(match, firstLetter) {
      return firstLetter.toUpperCase();
    });
  }
  
  module.exports = function compileExports(result, importItemMatcher, camelCaseKeys) {
    if (!Object.keys(result.exports).length) {
      return "";
    }
  
    var exportJs = Object.keys(result.exports).reduce(function(res, key) {
      var valueAsString = JSON.stringify(result.exports[key]);
      valueAsString = valueAsString.replace(result.importItemRegExpG, importItemMatcher);
      function addEntry(k) {
        res.push("\t" + JSON.stringify(k) + ": " + valueAsString);
      }
  
      var targetKey;
      switch(camelCaseKeys) {
        case true:
          addEntry(key);
          targetKey = camelCase(key);
          if (targetKey !== key) {
            addEntry(targetKey);
          }
          break;
        case 'dashes':
          addEntry(key);
          targetKey = dashesCamelCase(key);
          if (targetKey !== key) {
            addEntry(targetKey);
          }
          break;
        case 'only':
          addEntry(camelCase(key));
          break;
        case 'dashesOnly':
          addEntry(dashesCamelCase(key));
          break;
        default:
          addEntry(key);
          break;
      }
      return res;
    }, []).join(",\n");
  
    return "{\n" + exportJs + "\n}";
  };