Skip to content

Commit 022190c

Browse files
authored
feat: Added --css-modules-pattern and --css-modules-dashed-idents options to the CLI (parcel-bundler#197)
1 parent bad5803 commit 022190c

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/main.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)