From 5cffcfe457d1b15d201647a5775268378c6018c6 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Wed, 21 Jan 2026 10:47:56 +0800 Subject: feat: Add TypeScript support to data structures using ts-rs for type generation --- src-tauri/src/core/forge.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src-tauri/src/core/forge.rs') diff --git a/src-tauri/src/core/forge.rs b/src-tauri/src/core/forge.rs index 65bf413..a256add 100644 --- a/src-tauri/src/core/forge.rs +++ b/src-tauri/src/core/forge.rs @@ -12,6 +12,7 @@ use std::error::Error; #[cfg(target_os = "windows")] use std::os::windows::process::CommandExt; use std::path::PathBuf; +use ts_rs::TS; const FORGE_PROMOTIONS_URL: &str = "https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json"; @@ -19,7 +20,11 @@ const FORGE_MAVEN_URL: &str = "https://maven.minecraftforge.net/"; const FORGE_FILES_URL: &str = "https://files.minecraftforge.net/"; /// Represents a Forge version entry. -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/ForgeVersion.ts" +)] pub struct ForgeVersion { pub version: String, pub minecraft_version: String, @@ -36,11 +41,16 @@ struct ForgePromotions { } /// Information about an installed Forge version. -#[derive(Debug, Serialize, Clone)] +#[derive(Debug, Serialize, Clone, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/InstalledForgeVersion.ts" +)] pub struct InstalledForgeVersion { pub id: String, pub minecraft_version: String, pub forge_version: String, + #[ts(type = "string")] pub path: PathBuf, } -- cgit v1.2.3-70-g09d2