@@ -31,6 +31,10 @@ struct CliArgs {
3131 /// If no filename is provided, <output_file>.json will be used.
3232 #[ clap( long, group = "css_modules" ) ]
3333 css_modules : Option < Option < String > > ,
34+ #[ clap( long, requires = "css_modules" ) ]
35+ css_modules_pattern : Option < Option < String > > ,
36+ #[ clap( long, requires = "css_modules" ) ]
37+ css_modules_dashed_idents : bool ,
3438 /// Enable sourcemap, at <output_file>.map
3539 #[ clap( long, requires = "output_file" ) ]
3640 sourcemap : bool ,
@@ -57,9 +61,26 @@ pub fn main() -> Result<(), std::io::Error> {
5761 let absolute_path = fs:: canonicalize ( & cli_args. input_file ) ?;
5862 let filename = pathdiff:: diff_paths ( absolute_path, std:: env:: current_dir ( ) ?) . unwrap ( ) ;
5963 let filename = filename. to_str ( ) . unwrap ( ) ;
64+
65+ let css_modules = if let Some ( _) = cli_args. css_modules {
66+ Some ( parcel_css:: css_modules:: Config {
67+ pattern : cli_args. css_modules_pattern . as_ref ( ) . map_or ( Default :: default ( ) , |p| {
68+ if let Some ( pattern) = p {
69+ parcel_css:: css_modules:: Pattern :: parse ( pattern) . unwrap ( )
70+ } else {
71+ Default :: default ( )
72+ }
73+ } ) ,
74+ dashed_idents : cli_args. css_modules_dashed_idents ,
75+ ..Default :: default ( )
76+ } )
77+ } else {
78+ cli_args. css_modules . as_ref ( ) . map ( |_| Default :: default ( ) )
79+ } ;
80+
6081 let options = ParserOptions {
6182 nesting : cli_args. nesting ,
62- css_modules : cli_args . css_modules . as_ref ( ) . map ( |_| Default :: default ( ) ) ,
83+ css_modules,
6384 custom_media : cli_args. custom_media ,
6485 ..ParserOptions :: default ( )
6586 } ;
0 commit comments