diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-08-30 14:09:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-30 14:09:22 -0400 |
commit | 5f251b283b3532849862c7fdf4b91f0f9ed68829 (patch) | |
tree | 1552b9525162048ab962d7d33d4be29986bd540f /ext/node/package_json.rs | |
parent | 54be07d05e4c763dfa1b612decc58fa234aa9c88 (diff) |
fix(npm): prefer importing esm from esm (#15676)
Diffstat (limited to 'ext/node/package_json.rs')
-rw-r--r-- | ext/node/package_json.rs | 25 |
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, |