diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/node/Cargo.toml | 1 | ||||
-rw-r--r-- | ext/node/package_json.rs | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index 600e4fb82..1a5f4a615 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -17,6 +17,7 @@ path = "lib.rs" deno_core.workspace = true digest = { version = "0.10.5", features = ["core-api", "std"] } idna = "0.3.0" +indexmap.workspace = true md-5 = "0.10.5" md4 = "0.10.2" once_cell.workspace = true 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| { |