File tree 2 files changed +25
-1
lines changed
2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,15 @@ export default (cssModulesPath) => {
26
26
27
27
28
28
function getCssClassName ( cssModulesPath , cssModuleName ) {
29
+ if ( typeof cssModulesPath === 'string' ) {
30
+ return getCssClassNameFromPath ( cssModulesPath , cssModuleName ) ;
31
+ } else {
32
+ return getCssClassNameFromObject ( cssModulesPath , cssModuleName ) ;
33
+ }
34
+ }
35
+
36
+
37
+ function getCssClassNameFromPath ( cssModulesPath , cssModuleName ) {
29
38
if ( fs . lstatSync ( cssModulesPath ) . isDirectory ( ) ) {
30
39
let cssModulesDir = cssModulesPath ;
31
40
let cssModuleNameParts = cssModuleName . split ( '.' ) ;
@@ -36,14 +45,19 @@ function getCssClassName(cssModulesPath, cssModuleName) {
36
45
37
46
const cssModules = getCssModules ( path . resolve ( cssModulesPath ) ) ;
38
47
48
+ return getCssClassNameFromObject ( cssModules , cssModuleName ) ;
49
+ }
50
+
51
+
52
+ function getCssClassNameFromObject ( cssModules , cssModuleName ) {
39
53
return cssModuleName . trim ( ) . split ( ' ' )
40
54
. map ( cssModuleName => {
41
55
const cssClassName = _get ( cssModules , cssModuleName ) ;
42
56
if ( ! cssClassName ) {
43
57
throw getError ( 'CSS module "' + cssModuleName + '" is not found' ) ;
44
58
} else if ( typeof cssClassName !== 'string' ) {
45
59
throw getError ( 'CSS module "' + cssModuleName + '" is not a string' ) ;
46
- }
60
+ }
47
61
return cssClassName ;
48
62
} )
49
63
. join ( ' ' ) ;
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import cssModules from '..';
5
5
6
6
const classesPath = path . join ( __dirname , 'classes.json' ) ;
7
7
const classesDir = path . dirname ( classesPath ) ;
8
+ const classesObj = require ( classesPath ) ;
8
9
9
10
10
11
describe ( 'posthtml-css-modules' , ( ) => {
@@ -51,6 +52,15 @@ describe('posthtml-css-modules', () => {
51
52
} ) ;
52
53
53
54
55
+ it ( 'should inline CSS module from the object' , ( ) => {
56
+ return init (
57
+ '<div css-module="title"></div>' ,
58
+ '<div class="__title __heading"></div>' ,
59
+ classesObj
60
+ ) ;
61
+ } ) ;
62
+
63
+
54
64
it ( 'should throw an error if the file with the CSS modules is not found' , ( ) => {
55
65
return init (
56
66
'<div></div>' ,
You can’t perform that action at this time.
0 commit comments