summaryrefslogtreecommitdiff
path: root/ext/node/package_json.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/package_json.rs')
-rw-r--r--ext/node/package_json.rs25
1 files changed, 10 insertions, 15 deletions
diff --git a/ext/node/package_json.rs b/ext/node/package_json.rs
index 19a79da96..15b5ab920 100644
--- a/ext/node/package_json.rs
+++ b/ext/node/package_json.rs
@@ -19,6 +19,7 @@ pub struct PackageJson {
pub imports: Option<Map<String, Value>>,
pub bin: Option<Value>,
pub main: Option<String>,
+ pub module: Option<String>,
pub name: Option<String>,
pub path: PathBuf,
pub typ: String,
@@ -33,6 +34,7 @@ impl PackageJson {
imports: None,
bin: None,
main: None,
+ module: None,
name: None,
path,
typ: "none".to_string(),
@@ -66,6 +68,7 @@ impl PackageJson {
let imports_val = package_json.get("imports");
let main_val = package_json.get("main");
+ let module_val = package_json.get("module");
let name_val = package_json.get("name");
let type_val = package_json.get("type");
let bin = package_json.get("bin").map(ToOwned::to_owned);
@@ -79,21 +82,12 @@ impl PackageJson {
}
});
- let imports = if let Some(imp) = imports_val {
- imp.as_object().map(|imp| imp.to_owned())
- } else {
- None
- };
- let main = if let Some(m) = main_val {
- m.as_str().map(|m| m.to_string())
- } else {
- None
- };
- let name = if let Some(n) = name_val {
- n.as_str().map(|n| n.to_string())
- } else {
- None
- };
+ let imports = imports_val
+ .and_then(|imp| imp.as_object())
+ .map(|imp| imp.to_owned());
+ let main = main_val.and_then(|s| s.as_str()).map(|s| s.to_string());
+ let name = name_val.and_then(|s| s.as_str()).map(|s| s.to_string());
+ let module = module_val.and_then(|s| s.as_str()).map(|s| s.to_string());
// Ignore unknown types for forwards compatibility
let typ = if let Some(t) = type_val {
@@ -121,6 +115,7 @@ impl PackageJson {
path,
main,
name,
+ module,
typ,
types,
exports,