Skip to content

Commit 34eb8a8

Browse files
Tarnadasalexcrichton
authored andcommitted
fix: ignore non dependency keys in package json (#1969)
resolves #1921
1 parent 0f0d5ee commit 34eb8a8

File tree

2 files changed

+14
-22
lines changed

2 files changed

+14
-22
lines changed

crates/cli-support/src/js/mod.rs

+11-10
Original file line numberDiff line numberDiff line change
@@ -2769,17 +2769,18 @@ impl<'a> Context<'a> {
27692769
),
27702770
};
27712771
let mut iter = object.iter();
2772-
let (key, value) = match iter.next() {
2773-
Some(pair) => pair,
2774-
None => return Ok(()),
2775-
};
2776-
if key != "dependencies" || iter.next().is_some() {
2777-
bail!(
2778-
"NPM manifest found at `{}` can currently only have one key, \
2779-
`dependencies`, and no other fields",
2780-
path.display()
2781-
);
2772+
let mut value = None;
2773+
while let Some((key, v)) = iter.next() {
2774+
if key == "dependencies" {
2775+
value = Some(v);
2776+
break;
2777+
}
27822778
}
2779+
let value = if let Some(value) = value {
2780+
value
2781+
} else {
2782+
return Ok(());
2783+
};
27832784
let value = match value.as_object() {
27842785
Some(s) => s,
27852786
None => bail!(

crates/cli/tests/wasm-bindgen/npm.rs

+3-12
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ compatible with the `bundler` and `nodejs` targets
3535
}
3636

3737
#[test]
38-
fn more_package_json_fields_rejected() {
39-
let (mut cmd, _out_dir) = Project::new("more_package_json_fields_rejected")
38+
fn more_package_json_fields_ignored() {
39+
let (mut cmd, _out_dir) = Project::new("more_package_json_fields_ignored")
4040
.file(
4141
"src/lib.rs",
4242
r#"
@@ -63,16 +63,7 @@ fn more_package_json_fields_rejected() {
6363
"#,
6464
)
6565
.wasm_bindgen("");
66-
cmd.assert()
67-
.stderr(
68-
str::is_match(
69-
"\
70-
error: NPM manifest found at `.*` can currently only have one key, .*
71-
",
72-
)
73-
.unwrap(),
74-
)
75-
.failure();
66+
cmd.assert().success();
7667
}
7768

7869
#[test]

0 commit comments

Comments
 (0)