diff options
| author | 2026-02-25 02:06:07 +0800 | |
|---|---|---|
| committer | 2026-02-25 02:06:07 +0800 | |
| commit | 78ac61904d78d558d092eff08c9f261cbdb187e8 (patch) | |
| tree | 96f68d1f1554ee3a0532793afaaa52b0c73dcbec /src-tauri/src/core/forge.rs | |
| parent | 8ff3af6cb908fd824b512379dd21ed4f595ab6bb (diff) | |
| parent | 329734b23957b84cde2af459fa61c7385fb5b5f1 (diff) | |
| download | DropOut-78ac61904d78d558d092eff08c9f261cbdb187e8.tar.gz DropOut-78ac61904d78d558d092eff08c9f261cbdb187e8.zip | |
feat(ui): partial react rewrite (#77)
## Summary by Sourcery
Export backend data structures to TypeScript for the new React-based UI
and update CI to build additional targets.
New Features:
- Generate TypeScript definitions for core backend structs and enums
used by the UI.
- Now use our own Azure app(_DropOut_) to finish the authorize process.
Enhancements:
- Annotate existing Rust models with ts-rs metadata to control exported
TypeScript shapes, including tagged enums and opaque JSON fields.
Build:
- Add ts-rs as a dependency for generating TypeScript bindings from Rust
types.
CI:
- Extend the Semifold CI workflow to run on the dev branch and build
additional Linux musl and Windows GNU targets using cross where needed.
Diffstat (limited to 'src-tauri/src/core/forge.rs')
| -rw-r--r-- | src-tauri/src/core/forge.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src-tauri/src/core/forge.rs b/src-tauri/src/core/forge.rs index 65bf413..4452f8e 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,9 @@ 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)] +#[serde(rename_all = "camelCase")] +#[ts(export, export_to = "forge.ts")] pub struct ForgeVersion { pub version: String, pub minecraft_version: String, @@ -36,11 +39,14 @@ struct ForgePromotions { } /// Information about an installed Forge version. -#[derive(Debug, Serialize, Clone)] +#[derive(Debug, Serialize, Clone, TS)] +#[serde(rename_all = "camelCase")] +#[ts(export, export_to = "forge.ts")] pub struct InstalledForgeVersion { pub id: String, pub minecraft_version: String, pub forge_version: String, + #[ts(type = "string")] pub path: PathBuf, } |