diff options
Diffstat (limited to 'src-tauri/src/core/fabric.rs')
| -rw-r--r-- | src-tauri/src/core/fabric.rs | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/src-tauri/src/core/fabric.rs b/src-tauri/src/core/fabric.rs index 32790c7..feadd6b 100644 --- a/src-tauri/src/core/fabric.rs +++ b/src-tauri/src/core/fabric.rs @@ -8,11 +8,16 @@ use serde::{Deserialize, Serialize}; use std::error::Error; use std::path::PathBuf; +use ts_rs::TS; const FABRIC_META_URL: &str = "https://meta.fabricmc.net/v2"; /// Represents a Fabric loader version from the Meta API. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricLoaderVersion.ts" +)] pub struct FabricLoaderVersion { pub separator: String, pub build: i32, @@ -22,7 +27,11 @@ pub struct FabricLoaderVersion { } /// Represents a Fabric intermediary mapping version. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricIntermediaryVersion.ts" +)] pub struct FabricIntermediaryVersion { pub maven: String, pub version: String, @@ -30,7 +39,11 @@ pub struct FabricIntermediaryVersion { } /// Represents a combined loader + intermediary version entry. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricLoaderEntry.ts" +)] pub struct FabricLoaderEntry { pub loader: FabricLoaderVersion, pub intermediary: FabricIntermediaryVersion, @@ -39,7 +52,11 @@ pub struct FabricLoaderEntry { } /// Launcher metadata from Fabric Meta API. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricLauncherMeta.ts" +)] pub struct FabricLauncherMeta { pub version: i32, pub libraries: FabricLibraries, @@ -48,7 +65,11 @@ pub struct FabricLauncherMeta { } /// Libraries required by Fabric loader. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricLibraries.ts" +)] pub struct FabricLibraries { pub client: Vec<FabricLibrary>, pub common: Vec<FabricLibrary>, @@ -56,7 +77,11 @@ pub struct FabricLibraries { } /// A single Fabric library dependency. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricLibrary.ts" +)] pub struct FabricLibrary { pub name: String, pub url: Option<String>, @@ -64,7 +89,11 @@ pub struct FabricLibrary { /// Main class configuration for Fabric. /// Can be either a struct with client/server fields or a simple string. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricMainClass.ts" +)] #[serde(untagged)] pub enum FabricMainClass { Structured { client: String, server: String }, @@ -89,14 +118,22 @@ impl FabricMainClass { } /// Represents a Minecraft version supported by Fabric. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/FabricGameVersion.ts" +)] pub struct FabricGameVersion { pub version: String, pub stable: bool, } /// Information about an installed Fabric version. -#[derive(Debug, Serialize, Clone)] +#[derive(Debug, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/InstalledFabricVersion.ts" +)] pub struct InstalledFabricVersion { pub id: String, pub minecraft_version: String, |