Skip to content

Commit 4f3ac47

Browse files
committed
feat: deprecate bs-deps and bs-dev-deps
1 parent dbcaa93 commit 4f3ac47

File tree

7 files changed

+90
-41
lines changed

7 files changed

+90
-41
lines changed

rewatch/src/build/compile.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,15 +507,15 @@ fn get_dependency_paths(
507507
build_dev_deps: bool,
508508
) -> Vec<Vec<String>> {
509509
let normal_deps = config
510-
.bs_dependencies
510+
.dependencies
511511
.clone()
512512
.unwrap_or_default()
513513
.into_iter()
514514
.map(DependentPackage::Normal)
515515
.collect();
516516
let dev_deps = if build_dev_deps {
517517
config
518-
.bs_dev_dependencies
518+
.dev_dependencies
519519
.clone()
520520
.unwrap_or_default()
521521
.into_iter()

rewatch/src/build/deps.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,11 @@ fn get_dep_modules(
3737
// Get the list of allowed dependency packages for this package
3838
let allowed_dependencies: AHashSet<String> = package
3939
.config
40-
.bs_dependencies
40+
.dependencies
4141
.as_ref()
4242
.unwrap_or(&vec![])
4343
.iter()
44-
.chain(
45-
package
46-
.config
47-
.bs_dev_dependencies
48-
.as_ref()
49-
.unwrap_or(&vec![])
50-
.iter(),
51-
)
44+
.chain(package.config.dev_dependencies.as_ref().unwrap_or(&vec![]).iter())
5245
.cloned()
5346
.collect();
5447

rewatch/src/build/packages.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ fn read_dependencies(
299299
show_progress: bool,
300300
) -> Vec<Dependency> {
301301
return parent_config
302-
.bs_dependencies
302+
.dependencies
303303
.to_owned()
304304
.unwrap_or_default()
305305
.iter()
@@ -888,9 +888,9 @@ pub fn validate_packages_dependencies(packages: &AHashMap<String, Package>) -> b
888888
let mut detected_unallowed_dependencies: AHashMap<String, UnallowedDependency> = AHashMap::new();
889889

890890
for (package_name, package) in packages {
891-
let bs_dependencies = &package.config.bs_dependencies.to_owned().unwrap_or(vec![]);
891+
let bs_dependencies = &package.config.dependencies.to_owned().unwrap_or(vec![]);
892892
let pinned_dependencies = &package.config.pinned_dependencies.to_owned().unwrap_or(vec![]);
893-
let dev_dependencies = &package.config.bs_dev_dependencies.to_owned().unwrap_or(vec![]);
893+
let dev_dependencies = &package.config.dev_dependencies.to_owned().unwrap_or(vec![]);
894894

895895
[
896896
("bs-dependencies", bs_dependencies),
@@ -979,8 +979,8 @@ mod test {
979979
warnings: None,
980980
suffix: None,
981981
pinned_dependencies: Some(pinned_deps),
982-
bs_dependencies: Some(bs_deps),
983-
bs_dev_dependencies: Some(build_dev_deps),
982+
dependencies: Some(bs_deps),
983+
dev_dependencies: Some(build_dev_deps),
984984
ppx_flags: None,
985985
bsc_flags: None,
986986
namespace: None,

rewatch/src/config.rs

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,21 @@ pub struct Config {
194194
pub suffix: Option<String>,
195195
#[serde(rename = "pinned-dependencies")]
196196
pub pinned_dependencies: Option<Vec<String>>,
197-
#[serde(rename = "dependencies", alias = "bs-dependencies")]
198-
pub bs_dependencies: Option<Vec<String>>,
199-
#[serde(rename = "bs-dev-dependencies", alias = "dev-dependencies")]
200-
pub bs_dev_dependencies: Option<Vec<String>>,
197+
198+
#[serde(
199+
default,
200+
alias = "bs-dependencies",
201+
deserialize_with = "deserialize_dependencies"
202+
)]
203+
pub dependencies: Option<Vec<String>>,
204+
#[serde(
205+
default,
206+
rename = "dev-dependencies",
207+
alias = "bs-dev-dependencies",
208+
deserialize_with = "deserialize_dev_dependencies"
209+
)]
210+
pub dev_dependencies: Option<Vec<String>>,
211+
201212
#[serde(rename = "ppx-flags")]
202213
pub ppx_flags: Option<Vec<OneOrMore<String>>>,
203214
#[serde(rename = "bsc-flags", alias = "compiler-flags")]
@@ -691,7 +702,7 @@ mod tests {
691702
"#;
692703

693704
let config = serde_json::from_str::<Config>(json).unwrap();
694-
assert_eq!(config.bs_dependencies, Some(vec!["@testrepo/main".to_string()]));
705+
assert_eq!(config.dependencies, Some(vec!["@testrepo/main".to_string()]));
695706
}
696707

697708
#[test]
@@ -715,7 +726,7 @@ mod tests {
715726
"#;
716727

717728
let config = serde_json::from_str::<Config>(json).unwrap();
718-
assert_eq!(config.bs_dependencies, Some(vec!["@testrepo/main".to_string()]));
729+
assert_eq!(config.dependencies, Some(vec!["@testrepo/main".to_string()]));
719730
}
720731

721732
#[test]
@@ -739,10 +750,7 @@ mod tests {
739750
"#;
740751

741752
let config = serde_json::from_str::<Config>(json).unwrap();
742-
assert_eq!(
743-
config.bs_dev_dependencies,
744-
Some(vec!["@testrepo/main".to_string()])
745-
);
753+
assert_eq!(config.dev_dependencies, Some(vec!["@testrepo/main".to_string()]));
746754
}
747755

748756
#[test]
@@ -766,9 +774,6 @@ mod tests {
766774
"#;
767775

768776
let config = serde_json::from_str::<Config>(json).unwrap();
769-
assert_eq!(
770-
config.bs_dev_dependencies,
771-
Some(vec!["@testrepo/main".to_string()])
772-
);
777+
assert_eq!(config.dev_dependencies, Some(vec!["@testrepo/main".to_string()]));
773778
}
774779
}

rewatch/src/helpers.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,7 @@ use std::time::{SystemTime, UNIX_EPOCH};
99

1010
pub type StdErr = String;
1111

12-
pub mod deserialize {
13-
pub fn default_false() -> bool {
14-
false
15-
}
16-
17-
pub fn default_true() -> bool {
18-
true
19-
}
20-
}
12+
pub mod deserialize;
2113

2214
pub mod emojis {
2315
use console::Emoji;

rewatch/src/helpers/deserialize.rs

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
//! Helper functions for deserializing config files
2+
3+
use serde::Deserialize;
4+
5+
pub fn default_false() -> bool {
6+
false
7+
}
8+
9+
pub fn default_true() -> bool {
10+
true
11+
}
12+
13+
// Custom deserializer for dependencies that emits a warning when bs-dependencies is used
14+
pub fn deserialize_dependencies<'de, D>(deserializer: D) -> Result<Option<Vec<String>>, D::Error>
15+
where
16+
D: serde::Deserializer<'de>,
17+
{
18+
// Define a wrapper enum to detect which variant was used
19+
#[derive(Deserialize)]
20+
#[serde(untagged)]
21+
enum DependenciesField {
22+
#[serde(rename = "bs-dependencies")]
23+
BsDependencies(Option<Vec<String>>),
24+
#[serde(rename = "dependencies")]
25+
Dependencies(Option<Vec<String>>),
26+
}
27+
28+
match DependenciesField::deserialize(deserializer)? {
29+
DependenciesField::BsDependencies(deps) => {
30+
log::warn!("'bs-dependencies' is deprecated, please use 'dependencies' instead");
31+
Ok(deps)
32+
}
33+
DependenciesField::Dependencies(deps) => Ok(deps),
34+
}
35+
}
36+
37+
// Custom deserializer for dev-dependencies that emits a warning when bs-dev-dependencies is used
38+
pub fn deserialize_dev_dependencies<'de, D>(deserializer: D) -> Result<Option<Vec<String>>, D::Error>
39+
where
40+
D: serde::Deserializer<'de>,
41+
{
42+
// Define a wrapper enum to detect which variant was used
43+
#[derive(Deserialize)]
44+
#[serde(untagged)]
45+
enum DevDependenciesField {
46+
#[serde(rename = "bs-dev-dependencies")]
47+
BsDevDependencies(Option<Vec<String>>),
48+
#[serde(rename = "dev-dependencies")]
49+
DevDependencies(Option<Vec<String>>),
50+
}
51+
52+
match DevDependenciesField::deserialize(deserializer)? {
53+
DevDependenciesField::BsDevDependencies(deps) => {
54+
log::warn!("'bs-dev-dependencies' is deprecated, please use 'dev-dependencies' instead");
55+
Ok(deps)
56+
}
57+
DevDependenciesField::DevDependencies(deps) => Ok(deps),
58+
}
59+
}

rewatch/src/sourcedirs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ pub fn print(buildstate: &BuildState) {
7373
// Extract Pkgs
7474
let pkgs = [
7575
&package.config.pinned_dependencies,
76-
&package.config.bs_dependencies,
77-
&package.config.bs_dev_dependencies,
76+
&package.config.dependencies,
77+
&package.config.dev_dependencies,
7878
]
7979
.into_iter()
8080
.map(|dependencies| deps_to_pkgs(&buildstate.packages, dependencies));

0 commit comments

Comments
 (0)