diff options
Diffstat (limited to 'ext/node/package_json.rs')
-rw-r--r-- | ext/node/package_json.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/node/package_json.rs b/ext/node/package_json.rs index b05362890..4fa3025bf 100644 --- a/ext/node/package_json.rs +++ b/ext/node/package_json.rs @@ -4,12 +4,14 @@ use crate::NodeModuleKind; use crate::NodePermissions; use super::RequireNpmResolver; + use deno_core::anyhow; use deno_core::anyhow::bail; use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::serde_json::Map; use deno_core::serde_json::Value; +use indexmap::IndexMap; use serde::Serialize; use std::cell::RefCell; use std::collections::HashMap; @@ -35,6 +37,7 @@ pub struct PackageJson { pub types: Option<String>, pub dependencies: Option<HashMap<String, String>>, pub dev_dependencies: Option<HashMap<String, String>>, + pub scripts: Option<IndexMap<String, String>>, } impl PackageJson { @@ -53,6 +56,7 @@ impl PackageJson { types: None, dependencies: None, dev_dependencies: None, + scripts: None, } } @@ -144,6 +148,10 @@ impl PackageJson { } }); + let scripts: Option<IndexMap<String, String>> = package_json + .get("scripts") + .and_then(|d| serde_json::from_value(d.to_owned()).ok()); + // Ignore unknown types for forwards compatibility let typ = if let Some(t) = type_val { if let Some(t) = t.as_str() { @@ -179,6 +187,7 @@ impl PackageJson { bin, dependencies, dev_dependencies, + scripts, }; CACHE.with(|cache| { |