napi-modules 0.2.0

⤵️ import() and require() for NAPI-RS
Documentation
use std::{env, error::Error, process::Command};

#[test]
fn test_greet() -> Result<(), Box<dyn Error>> {
    let status = Command::new(env::var("CARGO")?)
        .args(&["build", "--package=examples-greet"])
        .status()?;
    if !status.success() {
        return Err(format!("build examples-greet failed: {:?}", status).into());
    }
    _ = fs_err::remove_file("target/debug/examples_greet.node");
    fs_err::rename(
        "target/debug/libexamples_greet.so",
        "target/debug/examples_greet.node",
    )?;
    let status = Command::new("node")
        .args(&["target/debug/examples_greet.node", "Alan Turing"])
        .status()?;
    if !status.success() {
        return Err(format!("run node failed: {:?}", status).into());
    }
    Ok(())
}