Skip to content

Commit

Permalink
fix(manifest): handle boolean bundledDependencies values
Browse files Browse the repository at this point in the history
Fixes: #284
  • Loading branch information
zkat committed Sep 30, 2023
1 parent 8d3cbe9 commit d6c16a4
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
2 changes: 1 addition & 1 deletion crates/node-maintainer/src/lockfile.rs
Expand Up @@ -151,7 +151,7 @@ impl From<LockfileNode> for CorgiManifest {
dev_dependencies: value.dev_dependencies,
peer_dependencies: value.peer_dependencies,
optional_dependencies: value.optional_dependencies,
bundled_dependencies: Vec::new(),
bundled_dependencies: None,
}
}
}
Expand Down
23 changes: 19 additions & 4 deletions crates/oro-common/src/manifest.rs
Expand Up @@ -24,7 +24,7 @@ pub struct CorgiManifest {
#[serde(default, skip_serializing_if = "IndexMap::is_empty")]
pub peer_dependencies: IndexMap<String, String>,
#[serde(default, alias = "bundleDependencies", alias = "bundledDependencies")]
pub bundled_dependencies: Vec<String>,
pub bundled_dependencies: Option<BundledDependencies>,
}

#[derive(Builder, Default, Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
Expand Down Expand Up @@ -183,10 +183,10 @@ pub struct Manifest {
default,
alias = "bundleDependencies",
alias = "bundledDependencies",
skip_serializing_if = "Vec::is_empty"
skip_serializing_if = "empty_bundled_dependencies"
)]
#[builder(default)]
pub bundled_dependencies: Vec<String>,
pub bundled_dependencies: Option<BundledDependencies>,

#[serde(default, skip_serializing_if = "Vec::is_empty")]
#[builder(default)]
Expand Down Expand Up @@ -268,6 +268,21 @@ where
Value(serde_json::Value),
}

#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
#[serde(untagged)]
pub enum BundledDependencies {
All(bool),
Some(Vec<String>),
}

fn empty_bundled_dependencies(bundled: &Option<BundledDependencies>) -> bool {
match bundled {
None => true,
Some(BundledDependencies::All(all)) => !all,
Some(BundledDependencies::Some(deps)) => deps.is_empty(),
}
}

#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
#[serde(untagged)]
pub enum Bugs {
Expand Down Expand Up @@ -423,7 +438,7 @@ mod tests {
.files(Some(vec!["*.js".into()]))
.os(vec!["windows".into(), "darwin".into()])
.cpu(vec!["x64".into()])
.bundled_dependencies(vec!["mydep".into()])
.bundled_dependencies(Some(BundledDependencies::Some(vec!["mydep".into()])))
.workspaces(vec!["packages/*".into()])
.build()
.unwrap()
Expand Down

0 comments on commit d6c16a4

Please sign in to comment.