lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

manifest.rs (1683B)


      1 use serde_json::json;
      2 
      3 use crate::sdk_generation::package_matrix::PackageSpec;
      4 
      5 pub fn manifest_relative_path(spec: PackageSpec) -> String {
      6     format!("contracts/provenance/typescript/{}.json", spec.key)
      7 }
      8 
      9 pub fn package_manifest(spec: PackageSpec) -> serde_json::Value {
     10     json!({
     11         "package": spec.package_name,
     12         "crate": spec.crate_name,
     13         "version": "0.1.0",
     14         "license": "MIT OR Apache-2.0",
     15         "repository": "https://github.com/radrootslabs/sdk",
     16         "repository_directory": spec.package_dir,
     17         "generator": "radroots_lib_xtask",
     18         "generated": false
     19     })
     20 }
     21 
     22 #[cfg(test)]
     23 mod tests {
     24     use crate::sdk_generation::{
     25         manifest::{manifest_relative_path, package_manifest},
     26         package_matrix::package_specs,
     27     };
     28 
     29     #[test]
     30     fn manifest_path_is_outside_package_source() {
     31         assert_eq!(
     32             manifest_relative_path(package_specs()[0]),
     33             "contracts/provenance/typescript/core.json"
     34         );
     35     }
     36 
     37     #[test]
     38     fn manifest_records_package_and_crate() {
     39         let manifest = package_manifest(package_specs()[0]);
     40         assert_eq!(manifest["package"], package_specs()[0].package_name);
     41         assert_eq!(manifest["crate"], package_specs()[0].crate_name);
     42         assert_eq!(manifest["version"], "0.1.0");
     43         assert_eq!(manifest["license"], "MIT OR Apache-2.0");
     44         assert_eq!(manifest["generator"], "radroots_lib_xtask");
     45         assert_eq!(
     46             manifest["repository"],
     47             "https://github.com/radrootslabs/sdk"
     48         );
     49         assert_eq!(
     50             manifest["repository_directory"],
     51             package_specs()[0].package_dir
     52         );
     53     }
     54 }