feat: replace nan with node-addon-api and conditionally print logs
This commit is contained in:
parent
30bb44f48a
commit
27f52266ac
1 changed files with 14 additions and 9 deletions
|
|
@ -97,17 +97,22 @@ pub fn generate_grammar_files(
|
|||
fs::read_to_string(path).with_context(|| "Failed to read package.json")?;
|
||||
let mut package_json = serde_json::from_str::<Map<String, Value>>(&package_json_str)
|
||||
.with_context(|| "Failed to parse package.json")?;
|
||||
let package_json_main = package_json.get("main");
|
||||
let package_json_types = package_json.get("types");
|
||||
let package_json_needs_update = package_json_main.map_or(true, |v| {
|
||||
let main_string = v.as_str();
|
||||
main_string == Some("index.js") || main_string == Some("./index.js")
|
||||
}) || package_json_types.is_none();
|
||||
let package_json_needs_update = package_json
|
||||
.get("dependencies")
|
||||
.map_or(false, |d| d.get("nan").is_some())
|
||||
|| package_json_types.is_none();
|
||||
if package_json_needs_update {
|
||||
eprintln!("Updating package.json with new binding path");
|
||||
package_json.insert(
|
||||
"main".to_string(),
|
||||
Value::String("bindings/node".to_string()),
|
||||
let dependencies = package_json
|
||||
.entry("dependencies".to_string())
|
||||
.or_insert_with(|| Value::Object(Map::new()));
|
||||
let dependencies = dependencies.as_object_mut().unwrap();
|
||||
if dependencies.remove("nan").is_some() {
|
||||
eprintln!("Replacing package.json's nan dependency with node-addon-api");
|
||||
}
|
||||
dependencies.insert(
|
||||
"node-addon-api".to_string(),
|
||||
Value::String("^7.1.0".to_string()),
|
||||
);
|
||||
package_json.insert(
|
||||
"types".to_string(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue