From 4fbce9a3132ae8f138352136a59ed571af4ccfc9 Mon Sep 17 00:00:00 2001 From: Jake Runzer Date: Fri, 1 Apr 2022 21:00:41 -0400 Subject: [PATCH] options scripts in package.json detect --- src/providers/npm.rs | 14 +++++++++----- src/providers/yarn.rs | 12 ++++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/providers/npm.rs b/src/providers/npm.rs index 60301c98717ef0..a230f67b1a7521 100644 --- a/src/providers/npm.rs +++ b/src/providers/npm.rs @@ -26,8 +26,10 @@ impl Provider for NpmProvider { fn suggested_build_cmd(&self, app: &App) -> Result> { let package_json: PackageJson = app.read_json("package.json")?; - if package_json.scripts.get("build").is_some() { - return Ok(Some("npm run build".to_string())); + if let Some(scripts) = package_json.scripts { + if scripts.get("build").is_some() { + return Ok(Some("npm run build".to_string())); + } } Ok(None) @@ -35,8 +37,10 @@ impl Provider for NpmProvider { fn suggested_start_command(&self, app: &App) -> Result> { let package_json: PackageJson = app.read_json("package.json")?; - if package_json.scripts.get("start").is_some() { - return Ok(Some("npm run start".to_string())); + if let Some(scripts) = package_json.scripts { + if scripts.get("start").is_some() { + return Ok(Some("npm run start".to_string())); + } } if app.includes_file("index.js") { @@ -50,5 +54,5 @@ impl Provider for NpmProvider { #[derive(Serialize, Deserialize, Debug)] pub struct PackageJson { pub name: String, - pub scripts: HashMap, + pub scripts: Option>, } diff --git a/src/providers/yarn.rs b/src/providers/yarn.rs index f6acc02cdece90..3a4b1aa4afc618 100644 --- a/src/providers/yarn.rs +++ b/src/providers/yarn.rs @@ -23,8 +23,10 @@ impl Provider for YarnProvider { fn suggested_build_cmd(&self, app: &App) -> Result> { let package_json: PackageJson = app.read_json("package.json")?; - if package_json.scripts.get("build").is_some() { - return Ok(Some("yarn build".to_string())); + if let Some(scripts) = package_json.scripts { + if scripts.get("build").is_some() { + return Ok(Some("yarn build".to_string())); + } } Ok(None) @@ -32,8 +34,10 @@ impl Provider for YarnProvider { fn suggested_start_command(&self, app: &App) -> Result> { let package_json: PackageJson = app.read_json("package.json")?; - if package_json.scripts.get("start").is_some() { - return Ok(Some("yarn start".to_string())); + if let Some(scripts) = package_json.scripts { + if scripts.get("start").is_some() { + return Ok(Some("yarn start".to_string())); + } } if app.includes_file("index.js") {