Merge pull request #1224 from Liamolucko/side-effects

Mark snippets and the bundler target's main file as having side effects
master
Jesper Håkansson 2 years ago committed by GitHub
commit 777e8ca6ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      src/manifest/mod.rs
  2. 2
      src/manifest/npm/esmodules.rs
  3. 7
      tests/all/manifest.rs
  4. 8
      tests/all/utils/manifest.rs

@ -723,10 +723,10 @@ impl CrateData {
url: repo_url,
}),
files: data.files,
module: data.main,
module: data.main.clone(),
homepage: data.homepage,
types: data.dts_file,
side_effects: false,
side_effects: vec![format!("./{}", data.main), "./snippets/*".to_owned()],
keywords: data.keywords,
dependencies,
})
@ -758,7 +758,7 @@ impl CrateData {
module: data.main,
homepage: data.homepage,
types: data.dts_file,
side_effects: false,
side_effects: vec!["./snippets/*".to_owned()],
keywords: data.keywords,
dependencies,
})

@ -22,7 +22,7 @@ pub struct ESModulesPackage {
#[serde(skip_serializing_if = "Option::is_none")]
pub types: Option<String>,
#[serde(rename = "sideEffects")]
pub side_effects: bool,
pub side_effects: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub keywords: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]

@ -93,7 +93,10 @@ fn it_creates_a_package_json_default_path() {
);
assert_eq!(pkg.module, "js_hello_world.js");
assert_eq!(pkg.types, "js_hello_world.d.ts");
assert_eq!(pkg.side_effects, false);
assert_eq!(
pkg.side_effects,
vec!["./js_hello_world.js", "./snippets/*"]
);
let actual_files: HashSet<String> = pkg.files.into_iter().collect();
let expected_files: HashSet<String> = [
@ -255,7 +258,7 @@ fn it_creates_a_package_json_with_correct_files_when_out_name_is_provided() {
);
assert_eq!(pkg.module, "index.js");
assert_eq!(pkg.types, "index.d.ts");
assert_eq!(pkg.side_effects, false);
assert_eq!(pkg.side_effects, vec!["./index.js", "./snippets/*"]);
let actual_files: HashSet<String> = pkg.files.into_iter().collect();
let expected_files: HashSet<String> =

@ -21,8 +21,8 @@ pub struct NpmPackage {
pub browser: String,
#[serde(default = "default_none")]
pub types: String,
#[serde(default = "default_false", rename = "sideEffects")]
pub side_effects: bool,
#[serde(default = "Vec::new", rename = "sideEffects")]
pub side_effects: Vec<String>,
pub homepage: Option<String>,
pub keywords: Option<Vec<String>>,
pub dependencies: Option<HashMap<String, String>>,
@ -32,10 +32,6 @@ fn default_none() -> String {
"".to_string()
}
fn default_false() -> bool {
false
}
#[derive(Deserialize)]
pub struct Repository {
#[serde(rename = "type")]

Loading…
Cancel
Save