teo-generator 0.3.9

SDK generators for Teo
Documentation
use serde_json::Value;

pub(crate) fn update_package_json_version(content: String) -> String {
    let mut json_value: Value = serde_json::from_str(&content).unwrap();
    let version = json_value.get("version");
    match version {
        Some(v) => {
            let previous = v.as_str().unwrap();
            let parts = previous.split(".");
            let last = parts.clone().last().unwrap();
            match last.parse::<u32>() {
                Ok(num) => {
                    let new_last = format!("{}", num + 1);
                    let vec_parts: Vec<&str> = parts.into_iter().collect();
                    let new_version = vec_parts.split_last().unwrap().1.join(".") + "." + &new_last;
                    json_value.as_object_mut().unwrap().insert("version".to_owned(), Value::String(new_version));
                },
                Err(_) => (),
            }
        },
        None => {
            json_value.as_object_mut().unwrap().insert("version".to_owned(), Value::String("0.1.1".to_owned()));
        },
    }
    serde_json::to_string_pretty(&json_value).unwrap() + "\n"
}