fix(depcheck): check for simple and detailed dep reps

master
Ashley Williams 7 years ago
parent 58eaed1550
commit 5def20ff72
  1. 21
      src/manifest.rs

@ -1,5 +1,6 @@
//! Reading and writing Cargo.toml and package.json manifests. //! Reading and writing Cargo.toml and package.json manifests.
use std::collections::HashMap;
use std::fs::File; use std::fs::File;
use std::io::prelude::*; use std::io::prelude::*;
use std::path::Path; use std::path::Path;
@ -15,7 +16,7 @@ use PBAR;
#[derive(Deserialize)] #[derive(Deserialize)]
struct CargoManifest { struct CargoManifest {
package: CargoPackage, package: CargoPackage,
dependencies: Option<CargoDependencies>, dependencies: Option<HashMap<String, CargoDependency>>,
lib: Option<CargoLib>, lib: Option<CargoLib>,
} }
@ -30,11 +31,15 @@ struct CargoPackage {
} }
#[derive(Deserialize)] #[derive(Deserialize)]
struct CargoDependencies { #[serde(untagged)]
#[serde(rename = "wasm-bindgen")] enum CargoDependency {
wasm_bindgen: Option<String>, Simple(String),
Detailed(DetailedCargoDependency),
} }
#[derive(Deserialize)]
struct DetailedCargoDependency {}
#[derive(Deserialize)] #[derive(Deserialize)]
struct CargoLib { struct CargoLib {
#[serde(rename = "crate-type")] #[serde(rename = "crate-type")]
@ -177,9 +182,11 @@ pub fn check_crate_config(path: &Path, step: &Step) -> Result<(), Error> {
} }
fn check_wasm_bindgen(path: &Path) -> Result<(), Error> { fn check_wasm_bindgen(path: &Path) -> Result<(), Error> {
if read_cargo_toml(path)?.dependencies.map_or(false, |x| { let cargo_toml = read_cargo_toml(path)?;
!x.wasm_bindgen.unwrap_or("".to_string()).is_empty() if cargo_toml
}) { .dependencies
.map_or(false, |deps| deps.contains_key("wasm-bindgen"))
{
return Ok(()); return Ok(());
} }
Error::crate_config(&format!( Error::crate_config(&format!(

Loading…
Cancel
Save