4
4
*/
5
5
var path = require ( "path" ) ;
6
6
var loaderUtils = require ( "loader-utils" ) ;
7
+ var camelCase = require ( "lodash.camelcase" ) ;
7
8
var processCss = require ( "./processCss" ) ;
8
9
var getImportPrefix = require ( "./getImportPrefix" ) ;
9
10
@@ -14,6 +15,7 @@ module.exports = function(content, map) {
14
15
var query = loaderUtils . parseQuery ( this . query ) ;
15
16
var root = query . root ;
16
17
var moduleMode = query . modules || query . module ;
18
+ var camelCaseKeys = query . camelCase || query . camelcase ;
17
19
18
20
if ( map !== null && typeof map !== "string" ) {
19
21
map = JSON . stringify ( map ) ;
@@ -82,11 +84,16 @@ module.exports = function(content, map) {
82
84
83
85
var exportJs = "" ;
84
86
if ( Object . keys ( result . exports ) . length > 0 ) {
85
- exportJs = Object . keys ( result . exports ) . map ( function ( key ) {
87
+ var boundImportItemMatcher = importItemMatcher . bind ( this ) ;
88
+ exportJs = Object . keys ( result . exports ) . reduce ( function ( res , key ) {
86
89
var valueAsString = JSON . stringify ( result . exports [ key ] ) ;
87
- valueAsString = valueAsString . replace ( result . importItemRegExpG , importItemMatcher . bind ( this ) ) ;
88
- return "\t" + JSON . stringify ( key ) + ": " + valueAsString ;
89
- } . bind ( this ) ) . join ( ",\n" ) ;
90
+ valueAsString = valueAsString . replace ( result . importItemRegExpG , boundImportItemMatcher ) ;
91
+ res . push ( "\t" + JSON . stringify ( key ) + ": " + valueAsString ) ;
92
+ if ( camelCaseKeys ) {
93
+ res . push ( "\t" + JSON . stringify ( camelCase ( key ) ) + ": " + valueAsString ) ;
94
+ }
95
+ return res ;
96
+ } , [ ] ) . join ( ",\n" ) ;
90
97
exportJs = "exports.locals = {\n" + exportJs + "\n};" ;
91
98
}
92
99
0 commit comments