44*/
55var path = require ( "path" ) ;
66var loaderUtils = require ( "loader-utils" ) ;
7+ var camelCase = require ( "lodash.camelcase" ) ;
78var processCss = require ( "./processCss" ) ;
89var getImportPrefix = require ( "./getImportPrefix" ) ;
910
@@ -14,6 +15,7 @@ module.exports = function(content, map) {
1415 var query = loaderUtils . parseQuery ( this . query ) ;
1516 var root = query . root ;
1617 var moduleMode = query . modules || query . module ;
18+ var camelCaseKeys = query . camelCase || query . camelcase ;
1719
1820 if ( map !== null && typeof map !== "string" ) {
1921 map = JSON . stringify ( map ) ;
@@ -82,11 +84,16 @@ module.exports = function(content, map) {
8284
8385 var exportJs = "" ;
8486 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 ) {
8689 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" ) ;
9097 exportJs = "exports.locals = {\n" + exportJs + "\n};" ;
9198 }
9299
0 commit comments