diff --git a/mobile/package.json b/mobile/package.json index 761cf24..fafec0f 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -11,7 +11,8 @@ "build:web": "vite build", "lint": "svelte-check --tsconfig ./tsconfig.json && eslint src && prettier --check src", "format": "eslint --fix src && prettier --write src", - "tauri": "tauri" + "tauri": "tauri", + "gen-types": "cargo run -p ferrum_mobile --bin export_ts" }, "license": "MIT", "dependencies": { diff --git a/mobile/src-tauri/src/bin/export_ts.rs b/mobile/src-tauri/src/bin/export_ts.rs new file mode 100644 index 0000000..f7473c0 --- /dev/null +++ b/mobile/src-tauri/src/bin/export_ts.rs @@ -0,0 +1,5 @@ +use ferrum_lib::gen_types; + +pub fn main() { + gen_types(); +} diff --git a/mobile/src-tauri/src/lib.rs b/mobile/src-tauri/src/lib.rs index e97fc88..8c63a79 100644 --- a/mobile/src-tauri/src/lib.rs +++ b/mobile/src-tauri/src/lib.rs @@ -52,15 +52,10 @@ fn load_library(library_json: String) -> Result, String> { Ok(tracks) } -#[cfg_attr(mobile, tauri::mobile_entry_point)] -pub fn run() { - #[cfg(target_os = "android")] - android_logger::init_once( - android_logger::Config::default() - .with_max_level(log::LevelFilter::Trace) - .with_tag("{{app.name}}"), - ); + Ok(library_tauri) +} +pub fn gen_types() -> Builder { let specta_builder = tauri_specta::Builder::::new() .commands(tauri_specta::collect_commands![error_popup, load_library]); @@ -70,9 +65,22 @@ pub fn run() { .export( specta_typescript::Typescript::default() .bigint(specta_typescript::BigIntExportBehavior::String), - "../bindings.ts", + "./bindings.ts", ) .expect("Failed to export typescript bindings"); + specta_builder +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + #[cfg(target_os = "android")] + android_logger::init_once( + android_logger::Config::default() + .with_max_level(log::LevelFilter::Trace) + .with_tag("{{app.name}}"), + ); + + let specta_builder = gen_types(); tauri::Builder::default() .plugin(tauri_plugin_fs::init())