From 802d7dfee77a3f58ee14a7ef6e2454e5aae62cbb Mon Sep 17 00:00:00 2001 From: GeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com> Date: Sun, 5 Feb 2023 15:53:34 +0100 Subject: feat: Auto-generate TS bindings (#140) * feat: Initial trial to auto-generate TS bindings That way instead of manually duplicating code, we can just run `cargo test` to generate them. * fix: Update forgotten imports * refactor: Move FlightCoreVersion to autogen bind TypeScript binding autogenerated from Rust code * refactor: Move ReleaseInfo to autogen binding TypeScript binding autogenerated from Rust code * docs: Explain how to generate TS binds from Rust * feat: Check for binding changes in CI Checks for uncommitted binding changes in CI and fails if they differ * style: Formatting fixes --- src-tauri/src/github/release_notes.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src-tauri/src/github') diff --git a/src-tauri/src/github/release_notes.rs b/src-tauri/src/github/release_notes.rs index 758f7ace..6dee4576 100644 --- a/src-tauri/src/github/release_notes.rs +++ b/src-tauri/src/github/release_notes.rs @@ -1,15 +1,18 @@ use crate::constants::APP_USER_AGENT; use serde::{Deserialize, Serialize}; use std::vec::Vec; +use ts_rs::TS; -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, Debug, Clone, TS)] +#[ts(export)] pub struct ReleaseInfo { pub name: String, pub published_at: String, pub body: String, } -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, Debug, Clone, TS)] +#[ts(export)] pub struct FlightCoreVersion { tag_name: String, published_at: String, -- cgit v1.2.3