1- const assign = require ( 'lodash' ) . assign ;
1+ 'use strict' ;
2+
3+ const { assign, identity, negate, camelCase : camelCaseFunc , mapKeys} = require ( 'lodash' ) ;
4+ const { dirname, relative, resolve} = require ( 'path' ) ;
5+ const { readFileSync} = require ( 'fs' ) ;
6+ const { transformTokens} = require ( './transformTokens' ) ;
7+
28const attachHook = require ( './attachHook' ) ;
3- const dirname = require ( 'path' ) . dirname ;
49const genericNames = require ( 'generic-names' ) ;
510const globToRegex = require ( 'glob-to-regexp' ) ;
6- const identity = require ( 'lodash' ) . identity ;
7- const negate = require ( 'lodash' ) . negate ;
8- const camelCaseFunc = require ( 'lodash' ) . camelCase ;
9- const mapKeys = require ( 'lodash' ) . mapKeys ;
10- const readFileSync = require ( 'fs' ) . readFileSync ;
11- const relative = require ( 'path' ) . relative ;
12- const resolve = require ( 'path' ) . resolve ;
1311const validate = require ( './validate' ) ;
1412
1513const postcss = require ( 'postcss' ) ;
@@ -23,13 +21,13 @@ const debugFetch = require('debug')('css-modules:fetch');
2321const debugSetup = require ( 'debug' ) ( 'css-modules:setup' ) ;
2422
2523module . exports = function setupHook ( {
24+ camelCase,
2625 devMode,
2726 extensions = '.css' ,
2827 ignore,
2928 preprocessCss = identity ,
3029 processCss,
3130 processorOpts,
32- camelCase,
3331 append = [ ] ,
3432 prepend = [ ] ,
3533 createImportedName,
@@ -89,7 +87,6 @@ module.exports = function setupHook({
8987 ? require . resolve ( _to )
9088 : resolve ( dirname ( from ) , _to ) ;
9189
92-
9390 // checking cache
9491 let tokens = tokensByFile [ filename ] ;
9592 if ( tokens ) {
@@ -107,10 +104,6 @@ module.exports = function setupHook({
107104
108105 tokens = lazyResult . root . tokens ;
109106
110- if ( camelCase ) {
111- tokens = assign ( mapKeys ( tokens , ( value , key ) => camelCaseFunc ( key ) ) , tokens ) ;
112- }
113-
114107 if ( ! debugMode ) {
115108 // updating cache
116109 tokensByFile [ filename ] = tokens ;
@@ -132,8 +125,13 @@ module.exports = function setupHook({
132125 const exts = toArray ( extensions ) ;
133126 const isException = buildExceptionChecker ( ignore ) ;
134127
128+ const hook = filename => {
129+ const tokens = fetch ( filename , filename ) ;
130+ return camelCase ? transformTokens ( tokens , camelCase ) : tokens ;
131+ } ;
132+
135133 // @todo add possibility to specify particular config for each extension
136- exts . forEach ( extension => attachHook ( filename => fetch ( filename , filename ) , extension , isException ) ) ;
134+ exts . forEach ( extension => attachHook ( hook , extension , isException ) ) ;
137135} ;
138136
139137/**
0 commit comments