diff options
| author | 2026-01-30 15:10:25 +0800 | |
|---|---|---|
| committer | 2026-01-30 15:10:25 +0800 | |
| commit | b92e7afe9f6e262b67056c238c0ca7d2b53b470e (patch) | |
| tree | 5282aa70bcef058b87086e8899469463d0ce1fbb | |
| parent | 6ab969cde1f4a3eaaa3b2d242d71afcec8cff702 (diff) | |
| download | DropOut-b92e7afe9f6e262b67056c238c0ca7d2b53b470e.tar.gz DropOut-b92e7afe9f6e262b67056c238c0ca7d2b53b470e.zip | |
refactor: add TypeScript support to account storage structures
| -rw-r--r-- | src-tauri/src/core/account_storage.rs | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src-tauri/src/core/account_storage.rs b/src-tauri/src/core/account_storage.rs index 8998206..a18b5fc 100644 --- a/src-tauri/src/core/account_storage.rs +++ b/src-tauri/src/core/account_storage.rs @@ -2,23 +2,36 @@ use crate::core::auth::{Account, MicrosoftAccount, OfflineAccount}; use serde::{Deserialize, Serialize}; use std::fs; use std::path::PathBuf; +use ts_rs::TS; /// Stored account data for persistence -#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, Serialize, Deserialize, Default, TS)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" +)] pub struct AccountStore { pub accounts: Vec<StoredAccount>, pub active_account_id: Option<String>, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(tag = "type")] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" +)] pub enum StoredAccount { Offline(OfflineAccount), Microsoft(StoredMicrosoftAccount), } /// Microsoft account with refresh token for persistence -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" +)] pub struct StoredMicrosoftAccount { pub username: String, pub uuid: String, @@ -64,6 +77,11 @@ impl StoredAccount { } } +#[derive(Debug, Clone, TS)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" +)] pub struct AccountStorage { file_path: PathBuf, } |